一、nginx整体结构
1.1 master进程和worker进程概览
手动启动nginx cd /usr/local/nginx ./nginx
查看nginx 启动情况:ps -ef | grep nginx
第一列:UID,进程所属的用户id
第二列:进程ID(PID),用来唯一的标识一个进程
第三列:父进程ID(PPID).fork(),worker进程是被master进程通过fork()创建出来的-worker进程是master的子进程
1.2 nginx进程模型
1个master进程,1到多个worker进程,这种工作机制来对外服务的。这种工作机制保证了nginx能够稳定、灵活的运行。

a.)master进程责任:监控进程,不处理具体业务,专门用来管理和监控worker进程;master角色是监工
b.)worker进程责任:用来干主要的活的(和用户交互的)
c.)master 和 worker 通讯:可以用信号,共享内存等技术
d.)稳定性、灵活性体现之一:worker一旦挂掉,那么master进程则立即fork()一个新的worker进程投入到工作中去。
1.3 调整worker进程数量
worker进程几个合适?公认的做法:让每个worker进程运行在单独的内核上,最大限度的减少cpu进程切换成本,提高系统运行效率。即:计算机内核数量与worker进程数量相等
8个processors
Linux 下查看 processors grep -c processor /proc/cpuinfo
如果小于物理processors个数 则Linux配置为 与物理processors个数一致
然后配置worker 配置为processor个数
/usr/local/nginx/conf/nginx.conf
修改worker_processes 8;
保存 退出
然后 查看nginx 是否启动 ps -ef | grep nginx
没启动的话 启动sudo ./nginx

二、nginx模型细说
稳定性 灵活
2.1 修改配置文件 使之立即生效 sudo ./nginx -s reload
2.2 nginx 热升级
./nginx -v 查看版本 升级新版本时 服务不停止
nginx 热回轨
新版本发现不稳定时,还可回退到老版本
2.3 nginx 关闭
粗暴 sudo kill
平滑 ./nginx -s quit 优雅退出 不接受新链接,完成当前链接
./nginx -s stop 直接退出
2.4 nginx 属于多进程
多线程弊端 共享内存 如果某个线程报错一定会影响到其他线程,很有可能导致服务器崩溃
nginx 可以把进程与processe绑定在一起,可以提高运行效率