遇到問題:公司業務需求,某站點需支持http2,經過查閱nginx > 1.9.5 支持http2。因而着手升級nginx版本。nginx
解決問題:app
首先作好原nginx的備份。(配置文件conf、應用程序/usr/local/nginx/sbin/nginx 等備份)tcp
1. 下載nginx最新穩定版本。ide
經過nginx官網查閱,下載了nginx1.10.1版本 (最新穩定版本)測試
2. 查看老版本的編譯參數
ui
[root@nginx001 ~]# /usr/local/nginx/sbin/nginx -Vspa
nginx version: nginx/1.7.6代理
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) blog
TLS SNI support enabled圖片
configure arguments: --prefix=/usr/local/nginx --with-pcre=/mnt/app//pcre-8.36 --with-zlib=/mnt/app//zlib-1.2.8 --add-module=/mnt/app//ngx_cache_purge-2.1 --with-http_perl_module --with-http_ssl_module --with-http_stub_status_module --add-module=/mnt/app//nginx_tcp_proxy_module-master --add-module=/mnt/app//nginx_upstream_check_module-master --add-module=/mnt/app/ngx_req_status
3. 解壓nginx1.10.1 版本,並從新編譯
ngx_cache_purge-2.1 不支持nginx1.10. 故從新下載ngx_cache_purge-2.3.tar.gz(下載地址:http://labs.frickle.com/files/)
nginx1.10 已支持tcp代理,故不須要編譯參數--add-module=/mnt/app//nginx_tcp_proxy_module-master
並加入http2 支持,--with-http_v2_module
因此正確編譯參數:
cd /mnt/app/nginx-1.10.1
./configure --prefix=/usr/local/nginx --with-pcre=/mnt/app/pcre-8.36 --with-zlib=/mnt/app/zlib-1.2.8 --add-module=/mnt/app/ngx_cache_purge-2.3 --with-http_perl_module --with-http_ssl_module --with-http_stub_status_module --with-stream --add-module=/mnt/app/nginx_upstream_check_module-master --with-http_v2_module
make
make install (若是不執行,報錯nginx.pm版本號不對。經測試從新安裝不會影響原nginx配置文件)
4. 備份並替換老nginx程序
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_1.7.bak
cp /mnt/app/nginx-1.10.1/objs/nginx /usr/local/nginx/sbin/nginx
查看替換以後的程序: 1.10版本
[root@nginx001 ~]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.10.1
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/usr/lcoal/nginx --with-pcre=/mnt/app/pcre-8.36 --with-zlib=/mnt/app/zlib-1.2.8 --add-module=/mnt/app/ngx_cache_purge-2.3 --with-http_perl_module --with-http_ssl_module --with-http_stub_status_module --with-stream --add-module=/mnt/app/nginx_upstream_check_module-master --with-http_realip_module --with-http_v2_module
檢查配置文件並從新啓動
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
完成升級nginx版本到1.10.1.