91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳解Nginx負載均衡配置誤區(qū)

Linux愛好者 ? 來源:51cto ? 作者:mb5ff980f81f3d8 ? 2021-05-13 14:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

3ea34db0-b3a2-11eb-bf61-12bb97331649.png

官網(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

3eb3feda-b3a2-11eb-bf61-12bb97331649.png

3ec5be9a-b3a2-11eb-bf61-12bb97331649.png

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

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

3ed58e06-b3a2-11eb-bf61-12bb97331649.png

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

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

3ee02596-b3a2-11eb-bf61-12bb97331649.png

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

3ef35aa8-b3a2-11eb-bf61-12bb97331649.png

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

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

3efd6d7c-b3a2-11eb-bf61-12bb97331649.png

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

3f0c7650-b3a2-11eb-bf61-12bb97331649.png

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

3f1b1214-b3a2-11eb-bf61-12bb97331649.png

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

3f325b40-b3a2-11eb-bf61-12bb97331649.png

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

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

3f449d0a-b3a2-11eb-bf61-12bb97331649.png

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

3f602872-b3a2-11eb-bf61-12bb97331649.png

可以看到,過了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)致負載不均衡,有可能會擊穿某個上游后端,達不到負載的效果

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    14

    文章

    10259

    瀏覽量

    91522
  • PHP
    PHP
    +關(guān)注

    關(guān)注

    0

    文章

    462

    瀏覽量

    28643
  • 負載均衡
    +關(guān)注

    關(guān)注

    0

    文章

    133

    瀏覽量

    12879

原文標題:Nginx負載均衡配置誤區(qū)

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Ingress Nginx性能調(diào)優(yōu)配置方案

    Ingress Nginx 是 Kubernetes 集群中最主流的流量入口組件,承擔著集群內(nèi)所有 HTTP/HTTPS 流量的路由和轉(zhuǎn)發(fā)。默認配置能應(yīng)付開發(fā)測試環(huán)境,但一到生產(chǎn)環(huán)境扛高并發(fā),各種
    的頭像 發(fā)表于 02-24 11:50 ?143次閱讀

    Nginx+Keepalived雙主架構(gòu)消除單點故障的最佳實踐

    負載均衡的都知道,單臺 Nginx 就是個定時炸彈。跑得再穩(wěn),硬件故障、網(wǎng)絡(luò)抖動、內(nèi)核 panic 這些事誰也說不準啥時候來。我見過太多團隊,業(yè)務(wù)量不大的時候單機裸奔,等出了事故才想起來要做高可用,然后手忙腳亂地上線,結(jié)果
    的頭像 發(fā)表于 02-03 11:04 ?378次閱讀

    阿里云SLB負載均衡配置指南

    當業(yè)務(wù)流量超過單臺服務(wù)器的承載能力,或者需要實現(xiàn)服務(wù)的高可用時,負載均衡成為必不可少的基礎(chǔ)設(shè)施。阿里云SLB(Server Load Balancer)作為國內(nèi)使用最廣泛的云負載均衡
    的頭像 發(fā)表于 01-30 17:47 ?1474次閱讀

    Nginx Gzip壓縮配置指南

    說起Gzip壓縮,可能很多人覺得這是個老生常談的話題。但我在這幾年的運維工作中發(fā)現(xiàn),真正把Gzip配置到位的網(wǎng)站其實不多。去年幫一個客戶做性能優(yōu)化,他們的網(wǎng)站日均帶寬消耗在2TB左右,一看Nginx
    的頭像 發(fā)表于 01-30 16:03 ?280次閱讀

    Nginx反向代理和負載均衡配置實戰(zhàn)

    負載均衡則是反向代理的進階玩法。當一臺后端服務(wù)器扛不住流量的時候,就需要多臺服務(wù)器一起分擔壓力。Nginx負責把請求分發(fā)到不同的服務(wù)器上,這就是負載
    的頭像 發(fā)表于 01-23 13:44 ?680次閱讀

    分析負載特性時,有哪些常見的錯誤或誤區(qū)?

    分析負載特性時,很多人會因 “想當然套用經(jīng)驗”“忽略實際場景細節(jié)” 或 “混淆概念” 導(dǎo)致判斷偏差,進而讓報警閾值調(diào)整失效(如誤報、漏報)。以下是 6 個最常見的錯誤 / 誤區(qū),附錯誤表現(xiàn)、危害
    的頭像 發(fā)表于 10-10 17:03 ?819次閱讀

    逐流、逐包、Flowlet:哪種負載均衡技術(shù)更適合未來網(wǎng)絡(luò)?

    當前主流的負載均衡技術(shù)主要包括三種類型:逐流的ECMP負載均衡、逐包負載均衡以及基于子流(Flo
    的頭像 發(fā)表于 09-22 14:17 ?2777次閱讀
    逐流、逐包、Flowlet:哪種<b class='flag-5'>負載</b><b class='flag-5'>均衡</b>技術(shù)更適合未來網(wǎng)絡(luò)?

    Nginx和HAProxy企業(yè)級負載均衡方案的對比

    想象一下,你的電商網(wǎng)站在雙十一當天需要處理平時100倍的流量,單臺服務(wù)器顯然無法承受。這時候,負載均衡就像是一個智能的交通指揮員,將海量請求合理分配到多臺后端服務(wù)器,確保系統(tǒng)穩(wěn)定運行。
    的頭像 發(fā)表于 09-18 15:01 ?816次閱讀

    Nginx負載均衡策略選擇指南

    上個月,我們的電商系統(tǒng)在大促期間突然出現(xiàn)用戶購物車數(shù)據(jù)丟失的問題。經(jīng)過排查發(fā)現(xiàn),罪魁禍首竟然是負載均衡策略配置不當!
    的頭像 發(fā)表于 08-20 16:23 ?931次閱讀

    Nginx高并發(fā)優(yōu)化方案

    作為一名在生產(chǎn)環(huán)境中摸爬滾打多年的運維工程師,我見過太多因為Nginx配置不當導(dǎo)致的性能瓶頸。今天分享一套完整的Nginx高并發(fā)優(yōu)化方案,幫助你的系統(tǒng)從10萬QPS突破到百萬級別。
    的頭像 發(fā)表于 08-13 15:51 ?1018次閱讀

    如何在多顯卡環(huán)境下配置OLLAMA實現(xiàn)GPU負載均衡

    本文將帶你深入了解如何在多顯卡環(huán)境下配置OLLAMA,實現(xiàn)GPU負載均衡,并分享生產(chǎn)環(huán)境中的最佳實踐。無論你是剛接觸GPU集群還是尋求性能優(yōu)化的老手,這篇文章都能給你帶來實用價值。
    的頭像 發(fā)表于 07-24 14:12 ?4050次閱讀

    一文詳解Nginx負載均衡

    Nginx作為負載均衡器,通過將請求分發(fā)到多個后端服務(wù)器,以提高性能、可靠性和擴展性。支持多種負載均衡算法,如輪詢、最小連接數(shù)、IP哈希等,
    的頭像 發(fā)表于 06-25 14:51 ?1097次閱讀
    一文<b class='flag-5'>詳解</b><b class='flag-5'>Nginx</b><b class='flag-5'>負載</b><b class='flag-5'>均衡</b>

    Nginx配置終極指南

    更新。性能是 Nginx 最重要的考量,其占用內(nèi)存少、并發(fā)能力強、能支持高達 5w 個并發(fā)連接數(shù),最重要的是, Nginx 是免費的并可以商業(yè)化,配置使用也比較簡單。
    的頭像 發(fā)表于 06-18 15:56 ?1040次閱讀
    <b class='flag-5'>Nginx</b><b class='flag-5'>配置</b>終極指南

    Nginx緩存配置詳解

    Nginx 是一個功能強大的 Web 服務(wù)器和反向代理服務(wù)器,它可以用于實現(xiàn)靜態(tài)內(nèi)容的緩存,緩存可以分為客戶端緩存和服務(wù)端緩存。
    的頭像 發(fā)表于 05-07 14:03 ?1259次閱讀
    <b class='flag-5'>Nginx</b>緩存<b class='flag-5'>配置</b><b class='flag-5'>詳解</b>

    Nginx服務(wù)優(yōu)化教程

    隱藏Nginx版本號,避免安全漏洞泄漏:修改配置文件法;修改源碼法
    的頭像 發(fā)表于 03-12 15:57 ?995次閱讀
    <b class='flag-5'>Nginx</b>服務(wù)優(yōu)化教程