wocaosinima 发表于 2018-11-11 12:19:04

nginx版本升级

  nginx升级
  首先说下nginx主进程可以使用的信号:
  TERM, INT快速关闭
  QUIT从容关闭
  HUP重载配置
  用新的配置开始新的工作进程
  从容关闭旧的工作进程
  USR1重新打开日志文件
  USR2平滑升级可执行程序。
  WINCH从容关闭工作进程
  假如我的nginx安装在了/usr/local/nginx下
  # cd /usr/local/nginx/
  # sbin/nginx -V #查看版本和编译参数
  # sbin/nginx -V
  nginx version: nginx/0.7.65
  built by gcc 4.1.2 20080704 (Red Hat 4.1.2-48)
  TLS SNI support disabled
  configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module//注意这里的编译项
  #查看pid位置,后面用到
  #grep pid conf/nginx.conf
  #tar zxvf nginx-1.0.8.tar.gz
  #cd nginx-1.0.8
  #./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module//按原来的选项configure
  #make    //注意只make不要make install
  #备份旧的可执行文件
  #mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
  #拷贝新编译的可执行文件到nginx对应目录
  #cd objs/
  #cp nginx /usr/local/nginx/sbin/
  #使用新的nginx的可执行文件 对配置文件进行测试语法
  #/usr/local/nginx/sbin/nginx -t
  #启用新的nginx,平滑升级可执行程序。主进程将重命名它的 .pid 文件为 .oldbin 在这时,两个 nginx 实例会同时运行,一起处理输入的请求
  #kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
  #要逐步停止旧的实例,你必须发送 WINCH 信号给旧的主进程,然后,它的工作进程就将开始从容关闭
  #ps -ef|grep nginx
  #kill -WINCH `cat /usr/local/nginx/logs/nginx.pid.oldbin`
  #ps -ef|grep nginx
  #可以看到 worker process is shutting down (nginx)
  #一段时间后,旧的工作进程处理了所有已连接的请求后退出,就仅由新的工作进程来处理输入的请求了
  #这个时候旧的nginx没有了worker process
  #发送QUIT信号给旧的nginx的主进程,要求其从容关闭其工作进程
  #kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
  #ok 升级完了 查看下吧
  #/usr/local/nginx/sbin/nginx -v
  本文txt文档见附件

页: [1]
查看完整版本: nginx版本升级