欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx stream 配置代理(Nginx TCP/UDP 負(fù)載均衡)

 更新時(shí)間:2021年11月15日 08:42:57   作者:catoop  
本文主要介紹了Nginx stream 配置代理(Nginx TCP/UDP 負(fù)載均衡),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前奏

我們都知道 nginx 是一款優(yōu)秀的反向代理服務(wù),用過(guò) nginx 的也應(yīng)該都知道 upstream,upstream 節(jié)點(diǎn)一般置于 http 節(jié)點(diǎn)大括號(hào)中,常規(guī)在 upstream 中配置需要被負(fù)載均衡的服務(wù)器列表。

比較多的使用做如下示意:

#user nobody nobody。
#worker_processes 2;
#pid /nginx/pid/nginx.pid;
error_log log/error.log debug;
events {
    ……
}
http {
    ……
    upstream testserver {   
      server 192.168.1.5:8080;
      server 192.168.1.6:8080;
      ……
    }

    server {
        ……
        location  / {
           ……     
           proxy_pass  http://testserver;
        } 
    }
}

從結(jié)構(gòu)可以看出,這種用的比較多的配置,主要是應(yīng)對(duì) http 反向代理的。

但是如果我們想對(duì)后端服務(wù)的 TCP 進(jìn)行代理,nginx 支持嗎?比如 mysql、redis 等,答案是肯定的,其實(shí) nginx 也是支持對(duì) TCP/UDP 進(jìn)行負(fù)載均衡的,下面要說(shuō)到的就是 nginx 的 stream 模塊,通過(guò)配置 stream 可以實(shí)現(xiàn)這樣的需求,這里還是更多的推薦主要將 nginx 用于 http 反向代理。

正篇

Nginx 的 TCP/UDP 負(fù)載均衡是應(yīng)用 Stream 代理模塊(ngx_stream_proxy_module)和 Stream 上游模塊(ngx_stream_upstream_module)實(shí)現(xiàn)的。Nginx 的 TCP 負(fù)載均衡與 LVS 都是四層負(fù)載均衡的應(yīng)用,所不同的是,LVS 是被置于 Linux 內(nèi)核中的,而 Nginx 是運(yùn)行于用戶層的,基于 Nginx 的 TCP 負(fù)載可以實(shí)現(xiàn)更靈活的用戶訪問(wèn)管理和控制。

基本概念科普完了,下面來(lái)看一下具體的配置示例:

worker_processes 4;
worker_rlimit_nofile 40000;

events {
    worker_connections 8192;
}

stream {
    upstream my_servers {
        least_conn;
        # 5s內(nèi)出現(xiàn)3次錯(cuò)誤,該服務(wù)器將被熔斷5s
        server <IP_SERVER_1>:3306 max_fails=3 fail_timeout=5s;
        server <IP_SERVER_2>:3306 max_fails=3 fail_timeout=5s;
        server <IP_SERVER_3>:3306 max_fails=3 fail_timeout=5s;
    }
    server {
        listen 3306;
        proxy_connect_timeout 5s;  # 與被代理服務(wù)器建立連接的超時(shí)時(shí)間為5s
        proxy_timeout 10s;   # 獲取被代理服務(wù)器的響應(yīng)最大超時(shí)時(shí)間為10s
        proxy_next_upstream on;  # 當(dāng)被代理的服務(wù)器返回錯(cuò)誤或超時(shí)時(shí),將未返回響應(yīng)的客戶端連接請(qǐng)求傳遞給upstream中的下一個(gè)服務(wù)器
        proxy_next_upstream_tries 3;   # 轉(zhuǎn)發(fā)嘗試請(qǐng)求最多3次
        proxy_next_upstream_timeout 10s;    # 總嘗試超時(shí)時(shí)間為10s
        proxy_socket_keepalive on;  # 開(kāi)啟SO_KEEPALIVE選項(xiàng)進(jìn)行心跳檢測(cè)
        
        proxy_pass my_servers;
    }
}

更多說(shuō)明

  • Nginx 的 TCP/UDP 負(fù)載均衡在連接分配時(shí)也支持被動(dòng)健康檢測(cè)模式,如果與后端服務(wù)器建立連接失敗,并在 fail_timeout 參數(shù)的時(shí)間內(nèi)連續(xù)超過(guò) max_fails 參數(shù)設(shè)置的次數(shù),Nginx 就會(huì)將該服務(wù)器置為不可用狀態(tài),并且在 fail_timeout 參數(shù)的時(shí)間內(nèi)不再給該服務(wù)器分配連接。當(dāng) fail_timeout 參數(shù)的時(shí)間結(jié)束時(shí)將嘗試分配連接檢測(cè)該服務(wù)器是否恢復(fù),如果可以建立連接,則判定為恢復(fù)。
  • 參數(shù) max_fails 是指 10s 內(nèi) Nginx 分配給當(dāng)前服務(wù)器的連接失敗次數(shù)累加值,每 10s 會(huì)重置為 0;
  • 參數(shù) fail_timeout 既是失敗計(jì)數(shù)的最大時(shí)間,又是服務(wù)器被置為失敗狀態(tài)的熔斷時(shí)間,超過(guò)這個(gè)時(shí)間將再次被分配連接;
  • 參數(shù) proxy_connect_timeout 或 proxy_timeout 為超時(shí)狀態(tài)時(shí),都會(huì)觸發(fā) proxy_next_upstream 機(jī)制;
  • 參數(shù) proxy_next_upstream 是 Nginx 下提高連接成功率的機(jī)制,當(dāng)被代理服務(wù)器返回錯(cuò)誤或超時(shí)時(shí),將嘗試轉(zhuǎn)發(fā)給下一個(gè)可用的被代理服務(wù)器;
  • 參數(shù) proxy_next_upstream_tries 的指令值次數(shù)包括第一次轉(zhuǎn)發(fā)請(qǐng)求的次數(shù)。
  • TCP 連接在接收到關(guān)閉連接通知前將一直保持連接,當(dāng) Nginx 與被代理服務(wù)器的兩個(gè)連續(xù)成功的讀或?qū)懖僮鞯淖畲箝g隔時(shí)間超過(guò) proxy_timeout 指令配置的時(shí)間時(shí),連接將會(huì)被關(guān)閉。在 TCP 長(zhǎng)連接的場(chǎng)景中,應(yīng)適當(dāng)調(diào)整 proxy_timeout 的設(shè)置,同時(shí)關(guān)注系統(tǒng)內(nèi)核 SO_KEEPALIVE 選項(xiàng)的配置,可以防止過(guò)早地?cái)嚅_(kāi)連接。

注:如果你配置 steam 模塊無(wú)效,請(qǐng)檢查一下你使用的版本是否支持 stream,如果未內(nèi)置該模塊,你需要在編譯的時(shí)候指定參數(shù) --with-stream 進(jìn)行編譯使其支持stream代理。

到此這篇關(guān)于Nginx stream 配置代理(Nginx TCP/UDP 負(fù)載均衡)的文章就介紹到這了,更多相關(guān)Nginx stream 配置代理 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Keepalived實(shí)現(xiàn)Nginx負(fù)載均衡高可用的示例代碼

    Keepalived實(shí)現(xiàn)Nginx負(fù)載均衡高可用的示例代碼

    這篇文章主要介紹了Keepalived實(shí)現(xiàn)Nginx負(fù)載均衡高可用的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • nginx配置域名訪問(wèn)時(shí)域名后出現(xiàn)兩個(gè)斜杠//的解決方法

    nginx配置域名訪問(wèn)時(shí)域名后出現(xiàn)兩個(gè)斜杠//的解決方法

    最近這兩天重新寫了一下我的個(gè)人網(wǎng)站,在阿里云新買了一臺(tái)服務(wù)器,配置好以后出現(xiàn)了一個(gè)問(wèn)題,就是輸入域名后域名地址會(huì)自動(dòng)在后面追加兩個(gè)斜桿,需要的朋友可以參考下
    2020-07-07
  • windows下nginx+tomcat配置負(fù)載均衡的方法

    windows下nginx+tomcat配置負(fù)載均衡的方法

    這篇文章主要介紹了windows下nginx+tomcat配置負(fù)載均衡的方法,需要的朋友可以參考下
    2016-09-09
  • nginx代理后端路徑獲取IP為127.0.0.1問(wèn)題

    nginx代理后端路徑獲取IP為127.0.0.1問(wèn)題

    文章討論了在使用Nginx作為反向代理時(shí),如何正確配置以避免在前端路徑A/api訪問(wèn)后端時(shí)丟失真實(shí)的IP地址,通過(guò)有效的Nginx配置,可以確保在前后端分離的場(chǎng)景中,客戶端通過(guò)前端路徑訪問(wèn)后端時(shí),后端能夠正確獲取客戶端的真實(shí)IP地址,示例配置展示了如何實(shí)現(xiàn)這一目標(biāo)
    2025-02-02
  • 前端如何通過(guò)nginx訪問(wèn)本地端口

    前端如何通過(guò)nginx訪問(wèn)本地端口

    這篇文章主要介紹了前端如何通過(guò)nginx訪問(wèn)本地端口的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • 查看nginx配置文件路徑和資源文件路徑的方法

    查看nginx配置文件路徑和資源文件路徑的方法

    這篇文章主要介紹了查看nginx配置文件路徑和資源文件路徑,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • nginx修改配置限制惡意爬蟲(chóng)頻率

    nginx修改配置限制惡意爬蟲(chóng)頻率

    這篇文章主要介紹在nginx中怎樣修改相關(guān)配置,以限制惡意爬蟲(chóng)頻率的方法,有需要的朋友參考下。
    2016-08-08
  • nginx日志導(dǎo)入elasticsearch的方法示例

    nginx日志導(dǎo)入elasticsearch的方法示例

    這篇文章主要介紹了nginx日志導(dǎo)入elasticsearch的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 如何使用nginx代理ws或是wss的請(qǐng)求

    如何使用nginx代理ws或是wss的請(qǐng)求

    這篇文章主要為大家詳細(xì)介紹了如何使用nginx代理ws或是wss的請(qǐng)求,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • Nginx性能優(yōu)化之Gzip壓縮設(shè)置詳解(最大程度提高頁(yè)面打開(kāi)速度)

    Nginx性能優(yōu)化之Gzip壓縮設(shè)置詳解(最大程度提高頁(yè)面打開(kāi)速度)

    這篇文章主要介紹了Nginx性能優(yōu)化之Gzip壓縮設(shè)置詳解(最大程度提高頁(yè)面打開(kāi)速度),需要的朋友可以參考下
    2022-01-01

最新評(píng)論