Nginx - 图1

设置

设置 vim 代码显示

cp -r ./contrib/vim/* /usr/share/vim/vimfiles/

or

cp -r ./contrib/vim/* ~/.vim/

编译时设置

./configure —help | more

可以查看编译设置

命令行

选项 含义
-?,-h this help
帮助
-v show version and exit
显示 nginx 版本信息
-V show version and configure options then exit
显示 nginx 版本和 configure 配置时的信息
-t test configuration and exit
测试配置文件
-T test configuration, dump it and exit
测试配置文件,并且显示内容
-q suppress non-error messages during configuration testing
-s signal send signal to a master process: stop, quit, reopen, reload
发送信号
stop 立刻停止服务
quit 优雅的停止服务
reload 重新加载配置文件
reopen 重新开始记录日志文件
-p prefix set prefix path (default: /usr/local/nginx/)
指定运行目录,默认是编译时 —prefix设置的目录
-c filename set configuration file (default: conf/nginx.conf)
使用指定的配置文件,默认是编译时 —prefix设置的目录下的 conf 目录下的配置文件
-g directives set global directives out of configuration file
指定配置指令

流程

不停机生效新的配置

  • reload 或者直接发送 SIGHUP 信号量
  1. 向 master 进程发送 SIGHUP 信号
  2. master 进程检查配置语法
  3. master 进程根据配置文件,打开/关闭监听端口(如果有新增或者关闭端口)
  4. master 进程使用新的配置文件,启动新的 worker 子进程
  5. master 进行向老的 worker 子进程发送 SIGQUIT 信号
  6. 旧的 worker 子进程关闭监听句柄,处理完当前连接后关闭进程

nginx 版本热升级

  1. 将旧的 nginx 文件替换为新的 nginx 文件
    1. 要求编译时的设置,比如路径等相同
  2. 向 master 进程发送 SIGUSER2 信号
  3. master 进程修改 pid 文件,加后缀 .oldbin
    1. pid 文件为 logs/nginx.pid
  4. master 进程用新 nginx 文件启动新 master 进程
    1. 新老 master 共存,各自的 worker 同时处理用户请求
  5. 向旧的 master 进程发送 SIGWINCH 信号,旧的 worker 子进程会退出
  6. 如果新版本有问题,需要回滚
    1. 向旧的 master 发送 SIGHUP
    2. 向新的 master 发送 SIGQUIT