nginx整体结构,进程模型

nginx的整体结构:


启动nginx,看到了一个master进程,一个worker进程
命令 ps-ef | grep nginx
第一列:UID,进程所属的用户id
第二列:进程ID(PID),用来唯一的标识一个进程
第三列:父进程ID(PPID),worker进程是被master进程通过fork()创建出来的,worker进程是master的子进程

nginx进程模型:

一个master进程,1到多个worker进程,这种工作机制对外服务,保证了nginx能稳定,灵活的运行

master进程责任:管理监控worker进程

worker进程:和用户进行交互

 master进程和worker进程之间要通讯,可以用信号,也可以用共享内存

稳定性,灵活性,体现:1.worker进程一旦挂掉,那么master进程会立即fork()一个新的worker进程投入工作中去

                                        2.nginx重载配置文件不需要重启nginx

                                        3.nginx可以热升级,热回滚

调整worker进程数:
worker进程设置数量:(公认)多核计算机,就让每个worker运行在一个单独的内核上,最大限度减少CPU进程切换成本,提高系统运行效率

查看虚拟机 processor数量命令

grep -c processor /proc/cpuinfo

修改nginx worker数量

进入  /usr/local/nginx/conf/目录下

用vim打开nginx.conf 文件 ,修改worker_processes数量为4(和虚拟机processor数量保持一致)

 nginx关闭命令

进入  /usr/local/nginx/sbin目录下

输入sudo ./nginx -s quit

总结:
nginx是一种多进程的模型:
多线程模型的弊端:共享内存,如果某个线程报错会影响到其他线程

 


版权声明:本文为GATSBY1202原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。