Nginx是轻量级的web服务器,用于反向代理服务器;内存占用少,启动极快,高并发能力强。
1、正向代理 代理客户端,对服务器透明(服务器不知道你使用了代理)
2、反向代理 代理服务器,对客户端透明
服务器启动Nginx后,在80端口开启socket监听
一、Master-Worker模式
1、Master进程
读取并验证nginx.conf;管理Worker进程。
2、Worker进程
每一个Worker进程维护一个线程,处理连接和请求;worker进程数由nginx.conf决定,大部分时候取决于CPU的个数相关。
二、热部署
有两种方案,Nginx采取了第二种方案
1、master进程读取修改nginx.conf,并推送至worker进程,worker进程更新内部信息
2、master进程读取修改nginx.conf,创新生成新的worker进程,对于新的请求采用新的worker进程处理,老的worker进程处理完原先的请求之后被kill掉
三、高并发下高效处理
Nginx采用了Linux的epoll模型,这是基于事件驱动机制,可监控多个事件是否准备完毕,如果准备完毕,则将其放入epoll队列中,这个过程是异步的。worker进程只需要从epoll队列中循环处理即可
四、高可用
采用Keepalived+Nginx实现高可用(防止Nginx挂掉)
1、Request不要直接传入Nginx,先通过Keepalived(虚拟IP,VIP)
2、Keepalived应能够监控Nginx的生命状态(通过脚本文件定时检查Nginx进程状态)