日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

這些 Nginx 負載均衡配置誤區,運維請注意

之前有很多朋友問關于 Nginx 的 upstream 模塊中 max_fails 及 fail_timeout,這兩個指令,分別是配置關于負載均衡過程中,對于上游(后端)服務器的失敗嘗試次數和不可用時間,很多人不是很理解這兩個參數到底怎么用及具體的含義。

先看官網文檔中的描述

這些 Nginx 負載均衡配置誤區,運維請注意

官網文檔中解釋 max_fails 是指在 fail_timeout 配置的時間內,服務器通信失敗的次數,默認為1,即在 fail_timeout 時間內,1次請求失敗即不再嘗試,將請求根據 hash 規則,轉發到下一個上游服務

fail_timeout 有兩種含義:

  • 當已經確認上游服務不可用時,是指與上游服務器通信失敗次數的時間

  • 服務器不可用的時間段

默認是10s

文字不是很好理解,搭建個實驗環境,環境如下:

  • Nginx

  • php-FPM(x2)

nginx 通過 fast-cgi 將 php 請求轉發到 PHP-FPM,這里 PHP-FPM 服務即上游服務,設置 upstream,負載 PHP-FPM

這些 Nginx 負載均衡配置誤區,運維請注意

upstream 按照默認配置,即 max_fails=1,fail_timeout=10

現在通過 tailf 分別監聽兩個 PHP-FPM 日志

這些 Nginx 負載均衡配置誤區,運維請注意

請求4次,因為是默認輪詢的,所以可以看時間,輪詢將請求分發到兩個PHP-FPM上游

可以從上面的日志中看到,按照輪詢規則,下次請求應該落到 PHP-FPM2 上面,接著,關掉 PHP-FPM1,繼續請求

這些 Nginx 負載均衡配置誤區,運維請注意

可以看到,PHP-FPM1肯定是不響應了,PHP-FPM2正常響應,接著看下Nginx日志

這些 Nginx 負載均衡配置誤區,運維請注意

可以看到,關掉 PHP-FPM1 后,發起的請求,本來第二次請求(17:49:58)應該分發到 PHP-FPM1 的,然后從 Nginx 錯誤日志可以看到,連接 PHP-FPM1 失敗,這里只做了一次失敗嘗試,然后 Nginx 將請求轉發到 PHP-FPM2 處理了。

接著將 max_fails 設置為2,繼續上面的請求

這些 Nginx 負載均衡配置誤區,運維請注意

開啟 PHP-FPM1,繼續請求,兩個負載輪詢轉發請求

這些 Nginx 負載均衡配置誤區,運維請注意

接著繼續關掉 PHP-FPM1,連續發起多次請求,查看日志

這些 Nginx 負載均衡配置誤區,運維請注意

所有請求都在 PHP-FPM2上,看 Nginx 錯誤日志

這些 Nginx 負載均衡配置誤區,運維請注意

兩次輪詢到PHP-FPM1的時候,失敗,之后不會再將請求分發到 PHP-FPM1 上游服務

接著,不開啟 PHP-FPM1,繼續發起多次請求,由于默認的 fail_timeout=10,所以在上面的失敗檢測 10s 之后再次發起請求,查看日志

這些 Nginx 負載均衡配置誤區,運維請注意

繼續分發到 PHP-FPM2,接著看 Nginx 錯誤日志

可以看到,過了 fail_timeout 的時間后,Ngxin 會再次將請求發往 FPM-PHP1 進行嘗試,嘗試2次失敗后,在 fail_timeout 時間內,不會再將請求分發,

這里有幾個誤區:

  • Nginx 記錄了連接上游失敗,這個請求就返回錯誤請求,或這個請求丟失沒處理

這個理解是錯誤的,Nginx 只是記錄了失敗的請求到日志,并將這個請求又轉發到了可用的其他上游服務,知道所有上游都不可用時,才會返回錯誤狀態

  • max_fails 是指連續請求失敗的次數

max_fails 是在 fail_timeout 指定的時間內的失敗次數,請求還是按照配置的負載均衡算法來走,并不是第一次請求失敗之后,繼續將這個請求在嘗試一次,達到失敗次數之后,標記為不可用

  • fail_timeout 越短越好

當訪問量大的時候,fail_timeout 設置太短,會導致不斷的嘗試與不可用上游的連接,耗費大量的 tcp 資源進行連接

  • fail_timeout 越長越好

當訪問量大的時候,fail_timeout設置太長,會導致負載不均衡,有可能會擊穿某個上游后端,達不到負載的效果。

來源:本文轉自公眾號運維研習社,點擊查看原文。

分享到:
標簽:負載均衡 Nginx
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定