nginx+tomcat做負載均衡,當某個tomcat宕機,會發生什么情況,如何解決?


使用兩台Tomcat,一台nginx做了一個小實驗:

  步驟一:

    當兩台tomcat正常運行的情況下,訪問http://localhost的速度是很很迅速的,通過修改主頁內容也可以觀察到是通過負載均衡得到的效果。

  步驟二:

    實驗性的將其中一台tomcat服務器關掉(將8080端口的關閉),再查看http://localhost ,會發現效果是這樣的:一半的請求反應時間很快,一般的請求反應時間很慢,但是最后都可以得到正確的結果。

  分析:

    出現這個效果的原因是在nginx中有一個參數:proxy_connect_timeout  ,即連接的超時時間,默認超時時間是1分鍾。當超過1分鍾,才會去連接到另一台服務器,而我們在這一分鍾只能苦苦等待。

  解決辦法:

    分析出來結果了,解決方法自然就有了。將 proxy_connect_timeout  參數的超時時間改小即可。如下圖示例:

  

server { listen 80; server_name localhost; upstream localhost { #這里是在同一台服務器上面進行測試,因此只改變端口號即可 server localhost:8080 weight=2; server localhost:8081 weight=2; } location / { root html; index index.html index.htm; http://localhost; //可通過域名訪問
 proxy_connect_timeout 1; #單位為秒 proxy_send_timeout 1; proxy_read_timeout 1; } ... }

 

  之后重新加載nginx的配置文件,或者重啟nginx,就能解決問題。

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM