728
技術社區[雲棲]
【雲計算的1024種玩法】手把手教你如何編譯升級 OpenResty
前言
在前麵的 【雲計算的1024種玩法】手把手教你如何編譯一個高性能 OpenResty 已經介紹過如何安裝 OpenResty 了,不過類似上麵安裝的教程那麼多,但是升級的教程就不太多了。【雲計算的1024種玩法】作為一個對你和對你的網站負責的係列教程,搞壞了你的服務器,就要搞好它~
在雲棲大會的 Tech Insight 場上,雲安全的專家的思路就是安全這種東西做好主動性強的預防就可以避免別動的對攻擊進行防禦,所以更新安全補丁升級軟件的重要性是不言而喻的。
準備
準備
雲翼計劃
學生用戶可以在阿裏雲官網上進行學生認證後購買一定配置的ECS,僅需9.9元每月,學生用戶無需擔心花費過多用在服務器的問題。
學生用戶在經過學生認證過後就可以在相關網址進行購買,網址為:
https://promotion.aliyun.com/ntms/campus2017.html
買好了服務器就可以去剛剛注冊好的賬號管理裏的管理控製台去查看服務器以及它的一些配置。
遠程控製
【雲計算的1024種玩法】使用 DMS 隻要一個瀏覽器輕鬆搞定運維任務
【雲計算的1024種玩法】ECS和輕量應用服務器的遠程控製入門
教程
定義版本
為了後麵的維護方便,繼續定義版本,這裏將版本修改成妖更新的新的軟件版本號。
# Version
OpenSSLVersion='openssl-1.1.0g';
NginxCTVersion='1.3.2';
PageSpeedVersion='1.12.34.2';
SystemBit='X64';
OpenRestyVersion='openresty-1.13.6.1';
上述軟件版本更新查看: OpenSSL、Nginx-CT、PageSpeed、OpenResty
下載源碼
cd /root/src
wget https://www.openssl.org/source/$OpenSSLVersion.tar.gz
tar xzf $OpenSSLVersion.tar.gz
wget https://github.com/grahamedgecombe/nginx-ct/archive/v$NginxCTVersion.tar.gz
tar xzf v$NginxCTVersion.tar.gz
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli
git submodule update --init
cd ../
wget https://github.com/pagespeed/ngx_pagespeed/archive/v$PageSpeedVersion-beta.zip
unzip v$PageSpeedVersion-beta.zip
cd ngx_pagespeed-$PageSpeedVersion-beta/
wget https://dl.google.com/dl/page-speed/psol/1.12.34.2-$SystemBit.tar.gz
tar -xzvf $PageSpeedVersion-$SystemBit.tar.gz
cd ../
wget -c https://openresty.org/download/$OpenRestyVersion.tar.gz
tar zxf $OpenRestyVersion.tar.gz
升級
cd $OpenRestyVersion
./configure --prefix=/usr/local/openresty \
--user=www-data --group=www-data \
--add-module=../ngx_brotli \
--add-module=../nginx-ct-$NginxCTVersion \
--add-module=../ngx_pagespeed-$PageSpeedVersion-beta \
--with-http_v2_module \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-openssl=../$OpenSSLVersion \
--with-ld-opt='-ljemalloc'
make
mv /usr/local/openresty/nginx/sbin/nginx{,`date +%m%d`}
nginx.old #備份現有nginx
make install
kill -USR2 `cat /run/openresty.pid`
sleep 1
kill -QUIT `cat /run/openresty.pid.oldbin`
解釋
make
之後,運行
mv /usr/local/openresty/nginx/sbin/nginx{,`date +%m%d`}
是為了備份舊的二進製 Nginx 文件。 為什麼還要運行 make install
呢?因為不同於 Nginx,OpenResty 除了 Nginx Core,還有luajit等等內容,所以還是要通過 make install
。
kill -USR2 `cat /run/openresty.pid`
是為了刪除舊版本的運行進程。
查看
運行下麵命令,查看現有 nginx.conf
文件是否符合現有版本的要求。
ngint -t
然後通過下麵命令,查看版本是有已經更新至最新版本。
nginx -V
結語
OpenResty 作為 Web 端軟件是訪客接觸網站的第一層其安全性是不言而喻的,而且 Nginx 及其衍生版特別容易出 DOS 漏洞,所以我們一定要及時關注漏洞情報和版本補丁情況及時更新,避免安全問題。
最後更新:2017-11-19 20:33:44