nginx的整体结构、进程模型
【master进程和worker进程概览(父子关系)】
- 启动nginx,看到了一个master进程,一个worker进程
- ps -ef命令查看信息
- 第一列:UID,进程所属的用户id
- 第二列:进程ID(PID),用来唯一的标识一个进程。
- 第三列:父进程ID(PPID)。worker进程是被master进程通过fork()创建出来的,worker进程是master进程的子进程,master是父进程。
【nginx进程模型】
- 1个master进程,1到多个worker进程 这种工作机制来对外服务的;这种工作机制保证了 nginx能够稳定、灵活的运行。
- a)master进程责任:监控进程,不处理具体业务,专门用来管理和监控worker进程;master,角色是监工,比较清闲。
- b)worker进程:用来干主要的活的,(和用户交互)。
- c)master进程和worker进程之间要通讯,可以用信号 ,也可以用共享内存 。
- d)稳定性,灵活性,体现之一:worker进程 一旦挂掉,那么master进程会立即fork()一个新的worker进程投入工作中去。
【调整worker进程数量】
- worker进程几个合适呢?公认的做法: 多核计算机,就让每个worker运行在一个单独的内核上,最大限度减少CPU进程切换成本,提高系统运行效率。
- 物理机:4核(4个processors);
- linux环境中查看processors信息
grep -c processor /proc/cpuinfo
- 配置worker的工作数量(安装目录下的nginx.conf文件):
- 配置完毕后,启动nginx程序,用ps命令查看nginx进程:
【nginx基本功能及操作】
- nginx重载配置文件 ./nginx -s reload(sbin目录下)
- nginx热升级,热回滚
- nginx的关闭 ./nginx -s quit(sbin目录下)
- 详情参看文章:Nginx命令行及演示:重载、热部署,日志切割