Try   HackMD

Tomcat部署War檔-完整過版流程(含Nginx切換)

請求送到Nginx做Load Balance後,會分去不同的Web server來處理請求

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

所以要完整過版又不影響到系統正式運作的話,就要先切換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
}