美文网首页
一篇对Nginx的简单理解

一篇对Nginx的简单理解

作者: vonhng | 来源:发表于2017-08-29 15:22 被阅读30次

    这篇文章容易理解一下就看懂了,来源:分布式构架实践-负载均衡

    Nginx(发音同engine x)是一个网页服务器,它能反向代理HTTP, HTTPS, SMTP, POP3, IMAP的协议链接,以及一个负载均衡器和一个HTTP缓存。
    Nginx主要用来做七层负载均衡。
    并发性能:官方支持每秒5万并发,实际国内一般到每秒2万并发,有优化到每秒10万并发的。具体性能看应用场景。

    特点

    • 模块化设计:良好的扩展性,可以通过模块方式进行功能扩展。
    • 高可靠性:主控进程和worker是同步实现的,一个worker出现问题,会立刻启动另一个worker。
    • 内存消耗低:一万个长连接(keep-alive),仅消耗2.5MB内存。
    • 支持热部署:不用停止服务器,实现更新配置文件,更换日志文件、更新服务器程序版本。
    • 并发能力强:官方数据每秒支持5万并发;
      功能丰富:优秀的反向代理功能和灵活的负载均衡策略

    Nginx的基本工作模式

    一个master进程,生成一个或者多个worker进程。
    但是这里master是使用root身份启动的,因为nginx要工作在80端口。而只有管理员才有权限启动小于低于1023的端口。
    master主要是负责的作用只是启动worker,加载配置文件,负责系统的平滑升级。其它的工作是交给worker。
    那么当worker被启动之后,也只是负责一些web最简单的工作,而其他的工作都是有worker中调用的模块来实现的。
    模块之间是以流水线的方式实现功能的。流水线,指的是一个用户请求,由多个模块组合各自的功能依次实现完成的。比如:第一个模块只负责分析请求首部,第二个模块只负责查找数据,第三个模块只负责压缩数据,依次完成各自工作。来实现整个工作的完成。
    他们是如何实现热部署的呢?其实是这样的,我们前面说master不负责具体的工作,而是调用worker工作,他只是负责读取配置文件,因此当一个模块修改或者配置文件发生变化,是由master进行读取,因此此时不会影响到worker工作。
    在master进行读取配置文件之后,不会立即的把修改的配置文件告知worker。而是让被修改的worker继续使用老的配置文件工作,当worker工作完毕之后,直接当掉这个子进程,更换新的子进程,使用新的规则

    相关文章

      网友评论

          本文标题:一篇对Nginx的简单理解

          本文链接:https://www.haomeiwen.com/subject/haiodxtx.html