nginx 平滑升級原理
升級 nginx
1、安裝配置1.8版本的 nginx
[root@localhost ~]# yum install -y gcc gcc-c++ pcre-devel openssl-devel zlib-devel
[root@localhost ~]# useradd -M -s /sbin/nologin nginx
[root@localhost ~]# tar xf nginx-1.8.1.tar.gz -C /usr/local
[root@localhost ~]# cd /usr/local/nginx-1.8.1/
[root@localhost nginx-1.8.1]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
--prefix=/usr/local/nginx \\指定安裝路徑
--with-http_stub_status_module \\聲明啓用service status服務狀態頁,默認 不啓用
--with-http_ssl_module \\啓用ssl(Secure Sockets Layer安全套接 層)模塊,以支持https請求
--sbin-path=/usr/bin/ \\聲明nginx命令目錄
[root@localhost nginx-1.8.1]# make && make install
[root@localhost nginx-1.8.1]# ln -s /usr/local/nginx/sbin/nginx /usr/sbin/
[root@localhost nginx-1.8.1]# nginx
[root@localhost nginx-1.8.1]# ss -anput | grep nginx
tcp LISTEN 0 128 *:80 *:* users: (("ngin",pid=12004,fd=6),("nginx",pid=12003,fd=6))
[root@localhost nginx-1.8.1]# nginx -v
nginx version: nginx/1.8.1
2、升級配置nginx-1.10版本
[root@localhost ~]# tar xf nginx-1.10.3.tar.gz -C /usr/local
[root@localhost ~]# cd /usr/local/nginx-1.10.3/
[root@localhost nginx-1.10.3]# ./configure --prefix=/usr/local/nginx --user=nginx --group=ngiinx --with-http_stub_status_module --with-http_ssl_module --with-pcre
[root@localhost nginx-1.10.3]# make
[root@localhost ~]# cd
[root@localhost ~]# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old
[root@localhost ~]# cp /usr/local/nginx-1.10.3/objs/nginx /usr/local/nginx/sbin/
複製新版本的nginx可執行程序
[root@localhost ~]# mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.old
[root@localhost ~]# cp /usr/local/nginx-1.10.3/conf/nginx.conf /usr/local/nginx/nginx.conf
[root@localhost ~]# kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
主進程將重命名它的 .pid 文件爲 .oldbin,然後執行新的可執行程序,依次啓動新的主進程和新的工作進程
[root@localhost ~]# ls /usr/local/nginx/logs/
access.log error.log nginx.pid
[root@localhost ~]# nginx -v
nginx version: nginx/1.10.3