【雲端計算的1024種玩法】手把手教你如何編譯升級OpenResty

妙正灰發表於2017-11-19

前言

在前面的 【雲端計算的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`;

上述軟體版本更新檢視: OpenSSLNginx-CTPageSpeedOpenResty

下載原始碼

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 漏洞,所以我們一定要及時關注漏洞情報和版本補丁情況及時更新,避免安全問題。


相關文章