nginx從1.6.3升級至1.12.2版本(安裝也可參考此文)
準備環境:(僅針對沒有安裝過nginx的系統)
檢查並安裝所需的依賴軟體
1).gcc:nginx編譯依賴gcc環境
安裝命令:yum -y install gcc-c++
2).pcre:(Perl Compatible Regular Expressions)是一個Perl庫,包括 perl 相容的正則表示式庫。nginx的http模組使用pcre來解析正則表示式.
安裝命令:yum install -y pcre pcre-devel
(如果提示Error: Multilib version problems found,則在命令後加上 --setopt=protected_multilib=false
3).zlib:該庫提供了很多種壓縮和解壓縮的方式,nginx使用zlib對http包的內容進行gzip。
安裝命令:yum install -y zlib zlib-devel
(如果提示Error: Multilib version problems found,則在命令後加上 --setopt=protected_multilib=false)
4).openssl:一個強大的安全套接字層密碼庫,囊括主要的密碼演算法、常用的金鑰和證書封裝管理功能及SSL協議,並提供豐富的應用程式供測試或其它目的使用。nginx不僅支援http協議,還支援https(即在ssl協議上傳輸http).
安裝命令:yum install -y openssl openssl-devel
準備環境到此結束。1、下載1.12.2版本的nginx,直接在官網下載即可。
wget http://nginx.org/download/nginx-1.12.2.tar.gz
2、解壓
tar zxvf nginx-1.12.2.tar.gz
3、我的舊版本安裝了nginx_upstream_check_module(健康檢查外掛),升級到新版本的nginx時需要在新版本的nginx裡打補丁。
如果你沒有安裝過nginx_upstream_check_module,可以直接在這裡下載https://codeload.github.com/yaoweibin/nginx_upstream_check_module/zip/master,並解壓unzip nginx_upstream_check_module-master
4、cd nginx-1.12.2
5、這就是第三步提到的打補丁
patch -p0 < 健康檢查所在路徑/nginx_upstream_check_module-master/check_1.11.5+.patch
如果系統不識別patch命令,請先執行yum -y install patch
6、檢測新版本nginx的配置環境
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --add-module=健康檢查所在路徑/nginx_upstream_check_module-master/
(
注意這裡可能需要建立www使用者組和使用者,執行
/usr/sbin/groupadd -f www
/usr/sbin/useradd -g www www
)7、編譯新版本nginx
make(注意千萬不要接下來執行make install,因為是升級,不是安裝)
8、備份舊版本的nginx命令
cp -a /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
9、停止nginx服務
/usr/local/nginx/sbin/nginx -s stop
10、將新版本的nginx命令複製過來
cd 新版本路徑/nginx-1.12.1/objs
cp -a nginx /usr/local/nginx/sbin/nginx
至此,升級完畢!重新啟動nginx看看吧,已經是新版本了!
./nginx -V檢視新版本