1. 程式人生 > >nginx升級

nginx升級

nginx

Nginx最近有漏洞爆出,於是把原來的nginx-1.6.2平滑升級至nginx-1.12.1穩定版。並記錄這一過程,參照這一過程也適用其他版本的升級。


1. 開始之前先查看一下當前使用的版本。


# /usr/local/webserver/nginx/sbin/nginx -V

nginx: nginx version: nginx/1.0.5

nginx: built by gcc 4.1.2 20080704 (Red Hat 4.1.2-50)

nginx: TLS SNI support disabled

nginx: configure arguments: --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-cc-opt=-O3 --with-cpu-opt=opteron --with-http_gzip_static_module

※ 註意紅色區域,這是以前編譯的參數。馬上編輯新版本需要用到。


2.下載新版本:http://nginx.org/en/download.html

git clone git://github.com/vozlt/nginx-module-vts.git 用於prometheus的監控

然後:解壓 > 便以前的準備 > 編譯


# tar zxvf nginx-1.0.5.tar.gz

# cd nginx-1.0.5

# ./configure

--user=www

--group=www

--prefix=/usr/local/webserver/nginx

--with-http_stub_status_module

--with-http_ssl_module

--with-http_flv_module

--with-cc-opt=‘-O3‘

--with-cpu-opt=opteron

--with-http_gzip_static_module

# make

3. 執行完後,這裏不用在 make install 了,接下來重名/sbin/nginx為nginx.old


# mv /usr/local/webserver/nginx/sbin/nginx /usr/local/webserver/nginx/sbin/nginx.old

4. 復制編譯後objs目錄下的nginx文件到nginx的安裝目錄sbin/下


# cp objs/nginx /usr/local/webserver/nginx/sbin/

5. 測試一下新復制過來文件生效情況:


# /usr/local/webserver/nginx/sbin/nginx -t

nginx: the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/webserver/nginx/conf/nginx.conf test is successful

6. 讓nginx把nginx.pid文件修改成nginx.pid.oldbin,隨即啟動nginx,實現不間斷


# kill -USR2 `cat /usr/local/webserver/nginx/nginx.pid` 更新配置文件

# kill -QUIT `cat /usr/local/webserver/nginx/nginx.pid.oldbin` 優雅的關閉

7. 升級完成了,最後在看一下升級後的版本


# /usr/local/webserver/nginx/sbin/nginx -v

nginx: nginx version: nginx/1.12.1


本文出自 “讓我men共同成長” 博客,請務必保留此出處http://wujingfeng.blog.51cto.com/5725921/1947475

nginx升級