前几天我同事晚上值班没事的时候,把公司客户的一些nginx服务器进行了升级,这种操做我还历来没有作过,也挺好奇的,今天闲来没事就在网上找了相似的文档,进行了操做,并把其过程记录了下来……html
1.查看本身服务器nginx的版本和最先本身编译安装是的参数 nginx
- [root@localhost ~]# /usr/local/nginx/sbin/nginx -V
- nginx version: nginx/1.2.1
- built by gcc 4.1.2 20080704 (Red Hat 4.1.2-46)
- TLS SNI support disabled
- configure arguments: --prefix=/usr/local --sbin-path=/usr/sbin/nginx \
- --conf-path=/usr/local/nginx/conf/nginx.conf \
- --error-log-path=/var/log/nginx/error.log \
- --http-log-path=/var/log/nginx/access.log \
- --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock \
- --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module \
- --with-http_stub_status_module --with-http_gzip_static_module \
- --http-client-body-temp-path=/var/tmp/nginx/client/ \
- --http-proxy-temp-path=/var/tmp/nginx/proxy/ \
- --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
- --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
- --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre
2.在这里http://nginx.org/en/download.html找到最新的nginx版本,并下载到服务器上
服务器
3.对新版本进行解压并编译,其中安装目录必须和原来的同样,可是能够添加一些新的参数ide
- [root@localhost ~]# tar xvf nginx-1.2.4.tar.gz
- [root@localhost ~]# cd nginx-1.2.4
- [root@localhost nginx-1.2.4]# ./configure --prefix=/usr/local \
- --sbin-path=/usr/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf \
- --error-log-path=/var/log/nginx/error.log \
- --http-log-path=/var/log/nginx/access.log \
- --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock \
- --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module \
- --with-http_stub_status_module --with-http_gzip_static_module \
- --http-client-body-temp-path=/var/tmp/nginx/client/ \
- --http-proxy-temp-path=/var/tmp/nginx/proxy/ \
- --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
- --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
- --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre
4.只执行make命令,不须要make install测试
- [root@localhost nginx-1.2.4]# make
5.替换nginx的一个二进制文件ui
- [root@localhost nginx-1.2.4]# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
- [root@localhost nginx-1.2.4]# cp objs/nginx /usr/local/nginx/sbin/
6.进行测试是否成功spa
- [root@localhost nginx-1.2.4]# /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
7.执行命令进行平滑升级xml
- [root@localhost nginx-1.2.4]# make upgrade
- /usr/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 /var/run/nginx/nginx.pid`
- sleep 1
- test -f /var/run/nginx/nginx.pid.oldbin
- kill -QUIT `cat /var/run/nginx/nginx.pid.oldbin`
make upgrade执行命令后显示的信息,其实显示的就是都执行了哪几个命令,也能够本身手动执行那个kill命令htm
8.在次查看版本信息ip
- [root@localhost nginx-1.2.4]# /usr/local/nginx/sbin/nginx -V
- nginx version: nginx/1.2.4
- built by gcc 4.1.2 20080704 (Red Hat 4.1.2-46)
- TLS SNI support disabled
- configure arguments: --prefix=/usr/local --sbin-path=/usr/sbin/nginx
- --conf-path=/usr/local/nginx/conf/nginx.conf \
- --error-log-path=/var/log/nginx/error.log \
- --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid \
- --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx \
- --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module \
- --with-http_gzip_static_module \
- --http-client-body-temp-path=/var/tmp/nginx/client/
- --http-proxy-temp-path=/var/tmp/nginx/proxy/ \
- --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
- --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
- --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre
nginx升级完成!