真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Nginx負載均衡配置有哪些誤區(qū)

這篇文章主要講解了“Nginx負載均衡配置有哪些誤區(qū)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習“Nginx負載均衡配置有哪些誤區(qū)”吧!

成都創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站制作、網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元鑲黃做網(wǎng)站,已為上家服務(wù),為鑲黃各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108

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

先看官網(wǎng)文檔中的描述

Nginx負載均衡配置有哪些誤區(qū)

官網(wǎng)文檔中解釋 max_fails 是指在 fail_timeout 配置的時間內(nèi),服務(wù)器通信失敗的次數(shù),默認為1,即在 fail_timeout 時間內(nèi),1次請求失敗即不再嘗試,將請求根據(jù) hash 規(guī)則,轉(zhuǎn)發(fā)到下一個上游服務(wù)

fail_timeout 有兩種含義:

  • 當已經(jīng)確認上游服務(wù)不可用時,是指與上游服務(wù)器通信失敗次數(shù)的時間

  • 服務(wù)器不可用的時間段

默認是10s

文字不是很好理解,搭建個實驗環(huán)境,環(huán)境如下:

  • Nginx

  • PHP-FPM(x2)

nginx 通過 fast-cgi 將 php 請求轉(zhuǎn)發(fā)到 PHP-FPM,這里 PHP-FPM 服務(wù)即上游服務(wù),設(shè)置 upstream,負載 PHP-FPM

Nginx負載均衡配置有哪些誤區(qū)

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

現(xiàn)在通過 tailf 分別監(jiān)聽兩個 PHP-FPM 日志

Nginx負載均衡配置有哪些誤區(qū)

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

可以從上面的日志中看到,按照輪詢規(guī)則,下次請求應(yīng)該落到 PHP-FPM2 上面,接著,關(guān)掉 PHP-FPM1,繼續(xù)請求

Nginx負載均衡配置有哪些誤區(qū)

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

Nginx負載均衡配置有哪些誤區(qū)

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

接著將 max_fails 設(shè)置為2,繼續(xù)上面的請求

Nginx負載均衡配置有哪些誤區(qū)

開啟 PHP-FPM1,繼續(xù)請求,兩個負載輪詢轉(zhuǎn)發(fā)請求

Nginx負載均衡配置有哪些誤區(qū)

接著繼續(xù)關(guān)掉 PHP-FPM1,連續(xù)發(fā)起多次請求,查看日志

Nginx負載均衡配置有哪些誤區(qū)

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

Nginx負載均衡配置有哪些誤區(qū)

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

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

Nginx負載均衡配置有哪些誤區(qū)

繼續(xù)分發(fā)到 PHP-FPM2,接著看 Nginx 錯誤日志

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

這里有幾個誤區(qū):

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

這個理解是錯誤的,Nginx 只是記錄了失敗的請求到日志,并將這個請求又轉(zhuǎn)發(fā)到了可用的其他上游服務(wù),知道所有上游都不可用時,才會返回錯誤狀態(tài)

  • max_fails 是指連續(xù)請求失敗的次數(shù)

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

  • fail_timeout 越短越好

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

  • fail_timeout 越長越好

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

感謝各位的閱讀,以上就是“Nginx負載均衡配置有哪些誤區(qū)”的內(nèi)容了,經(jīng)過本文的學(xué)習后,相信大家對Nginx負載均衡配置有哪些誤區(qū)這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!


分享標題:Nginx負載均衡配置有哪些誤區(qū)
路徑分享:http://weahome.cn/article/gejopd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部