Izhuceul 发表于 2018-11-9 08:25:45

nginx平滑升级(线上)

  nginx_ngx_cache_purge第三方模块下载地址,用于清除缓存
  http://labs.frickle.com/nginx_ngx_cache_purge/
  编译安装参数:--user=www --group=www --add-module=/usr/local/src/ngx_cache_purge-2.0 --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
  注意:红色的是添加的第三方还魂模块解压后的目录
  1、升级nginx和添加第三方模块一样。都要查看原先的nginx版本及编译参数:
  # /usr/local/nginx/sbin/nginx-V
  nginx version: nginx/1.12.2
  built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
  built with OpenSSL 1.0.1e-fips 11 Feb 2013
  TLS SNI support enabled
  configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre=/usr/local/src/pcre-8.39
  2、备份nginx
  rsync -avz/usr/local/nginx/usr/local/nginx.bak --exclude=/usr/local/nginx/logs/*
  --exclude 指定不备份的文件或者目录
  3、下载nginx的第三方缓存模块(由于目前nginx已经是最新版本,所以没升级)
  如果是升级nginx版本。就下载nginx的新版本的包,然后解压。最好也是和之前一样放在/usr/local/src下面。然后进入解压目录,运行上面所查询到的编译参数。添加第三方模块只是在编译的时候加上红色部分而已。如下:
  # ./configure--prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre=/usr/local/src/pcre-8.39 --add-module=/usr/local/src/ngx_cache_purge-2.3
  标红的这个是第三方模块解压出来的目录,用--add-module 指定一下即可
  4、编译完成之后,再进行make      切记,千万不能make install
  # make
  5、make 编译完,在objs目录下有一个nginx执行文件
  5.1、首先备份老的nginx的可执行文件
  cp -a /usr/local/nginx/sbin/nginx{,.bak}
  5.2、把objs下新的nginx可执行文件拷贝到/usr/local/nginx/sbin下
  \cp objs/nginx/usr/local/nginx/sbin/ -f
  5、测试一下查看是否有问题
  # /usr/local/nginx/sbin/nginx -t
  nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
  nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
  这样表示没问题
  6、使用makeupgrade 替换老的nginx进程进行平滑升级
  # make upgrade
  /usr/local/nginx/sbin/nginx -t
  nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
  nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
  kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
  sleep 1
  test -f /usr/local/nginx/logs/nginx.pid.oldbin
  kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
  7、再次执行:/usr/local/nginx/sbin/nginx -V 将会显示新的nginx的版本及编译的参数
  # /usr/local/nginx/sbin/nginx -V
  nginx version: nginx/1.12.2
  built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
  built with OpenSSL 1.0.1e-fips 11 Feb 2013
  TLS SNI support enabled
  configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre=/usr/local/src/pcre-8.39 --add-module=/usr/local/src/ngx_cache_purge-master
  至此,nginx平滑升级完成


页: [1]
查看完整版本: nginx平滑升级(线上)