請求送到Nginx做Load Balance後,會分去不同的Web server來處理請求
所以要完整過版又不影響到系統正式運作的話,就要先切換Nginx設定輪流導向另外一台Tomcat來處理請求,在輪流過版
假設: Nginx - A 和 Nginx - B 上面的nginx.conf設定為
upstream camiolWs{
server 160.201.30.100:7024
server 160.201.30.200:7024
}
我們今天先過版到 160.201.30.100 上面的Tomcat
那我們就先將Nginx上面的nginx.conf都把160.201.30.100註解掉
upstream camiolWs{
#server 160.201.30.100:7024
server 160.201.30.200:7024
}
然後輪流重啟Nginx
cd ../sbin/
./nginx -t //測試剛改的nginx.conf是否正常
//如果回應test is successful ,就重啟nginx
./nginx -s reload
看log確定沒有交易到160.201.30.100的tomcat後
開始重啟160.201.30.100的tomcat
將原本的war檔檔名改掉加上日期
//先cd 到tomcat路徑下面的bin資料夾
ps aux | grep tomcat //查出tomcat目前的PID
//假設查出來tomcat PID 為 7293
kill -9 7293 //殺掉tomcat的process
//將要部屬的檔案放到tomcat的webapps資料夾,然後啟動tomcat
./startup.sh
//查看catalina.out ,確認是否啟動成功
tail -500f ../logs/catalina.out
//確認log裡看到有server start up success 之類的字樣即可
這時候再把Nginx 輪流切換到另外一台Tomcat,一樣輪流重啟Nginx
upstream camiolWs{
server 160.201.30.100:7024
#server 160.201.30.200:7024
}
在160.201.30.100確認是否有交易進來
tail -500f log/camiolWs.log
確認完後重複上面的步驟,重啟160.201.30.200的Tomcat
最後把Nginx調回原本的設定,輪流重啟Nginx即可
upstream camiolWs{
server 160.201.30.100:7024
server 160.201.30.200:7024
}