searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Nginx学习(一):基本概念及运行架构

2023-05-30 06:19:08
10
0

Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,并发能力强,在互联网项目中应用广泛。

运行架构:

Nginx采用Master-worker模式,启动Nginx后,会有一个master进程和多个worker进程。

Master-worker模式,启动Nginx后,在80端口启用Socket服务进行监听,Nginx涉及Master进程和Worker进程

Master主进程原理:

①nginx -t 命令给master进程发送信号,检测配置文件;

②根据配置文件的参数创建,且监控worker进程的数量和状态;

③监听socket(ip:port),接收client发起的请求,默认监听80端口,被动的等待用户发来连接请求(nginx的主进程工作状态);

④接收发送的管理nginx进程的信号,并且将信号通知到worker进程;

⑤若下发reload命令,则读取新配置文件、创建新的worke进程,结束旧的worker进程。

 

Worker进程原理:

①实际处理client网络请求;

②master根据Nginx.conf决定worker的数量;

③client用户请求到达时,worker之间进程竞争,获胜者和client建立连接且处理用户请求;

④接收用户请求后,若需要代理转发给后端,则后端处理完毕后接收处理结果,再响应给用户;

⑤接收并处理Master发来的进程信号,如启动、重启、重载、停止,即Master负责接收信号,实际进行操作的是worker。

 

Nginx管理命令

nginx -t   #检测Nginx.conf语法

nginx -s reload   #重新读取Nginx.conf,是给master进程发信号,重新读取配置信息,导致worker重新生成,因此worker-pid发生变化,但此时master的ID是不变化的,只有restar时才改变

nginx -s stop   #停止nginx 

nginx   #默认直接运行,在当前机器没运行nginx时

# systemctl 管理Nginx

systemctl status nginx   #查看状态

systemctl reload nginx   #reload nginx,此时worker进程的id号会改变,master进程不会

systemctl restar nginx   #整个Nginx进程变化

 

Nginx热加载方式

Nginx重新加载配置是不需要中断请求的,就能够让配置文件生效;

当master进程收到信号后,会重新加载配置文件,并启动新的worker进程,此时新worker进程在启动后就开始接收新请求;

而老worker在接收到master信号后,不再接收新请求,在以前未处理完的请求处理完成后,退出。

 

 

0条评论
作者已关闭评论
可爱向上张努力
3文章数
0粉丝数
可爱向上张努力
3 文章 | 0 粉丝
可爱向上张努力
3文章数
0粉丝数
可爱向上张努力
3 文章 | 0 粉丝
原创

Nginx学习(一):基本概念及运行架构

2023-05-30 06:19:08
10
0

Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,并发能力强,在互联网项目中应用广泛。

运行架构:

Nginx采用Master-worker模式,启动Nginx后,会有一个master进程和多个worker进程。

Master-worker模式,启动Nginx后,在80端口启用Socket服务进行监听,Nginx涉及Master进程和Worker进程

Master主进程原理:

①nginx -t 命令给master进程发送信号,检测配置文件;

②根据配置文件的参数创建,且监控worker进程的数量和状态;

③监听socket(ip:port),接收client发起的请求,默认监听80端口,被动的等待用户发来连接请求(nginx的主进程工作状态);

④接收发送的管理nginx进程的信号,并且将信号通知到worker进程;

⑤若下发reload命令,则读取新配置文件、创建新的worke进程,结束旧的worker进程。

 

Worker进程原理:

①实际处理client网络请求;

②master根据Nginx.conf决定worker的数量;

③client用户请求到达时,worker之间进程竞争,获胜者和client建立连接且处理用户请求;

④接收用户请求后,若需要代理转发给后端,则后端处理完毕后接收处理结果,再响应给用户;

⑤接收并处理Master发来的进程信号,如启动、重启、重载、停止,即Master负责接收信号,实际进行操作的是worker。

 

Nginx管理命令

nginx -t   #检测Nginx.conf语法

nginx -s reload   #重新读取Nginx.conf,是给master进程发信号,重新读取配置信息,导致worker重新生成,因此worker-pid发生变化,但此时master的ID是不变化的,只有restar时才改变

nginx -s stop   #停止nginx 

nginx   #默认直接运行,在当前机器没运行nginx时

# systemctl 管理Nginx

systemctl status nginx   #查看状态

systemctl reload nginx   #reload nginx,此时worker进程的id号会改变,master进程不会

systemctl restar nginx   #整个Nginx进程变化

 

Nginx热加载方式

Nginx重新加载配置是不需要中断请求的,就能够让配置文件生效;

当master进程收到信号后,会重新加载配置文件,并启动新的worker进程,此时新worker进程在启动后就开始接收新请求;

而老worker在接收到master信号后,不再接收新请求,在以前未处理完的请求处理完成后,退出。

 

 

文章来自个人专栏
学习使人进步
3 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0