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

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

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

前奏

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

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

#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)可以看出,這種用的比較多的配置,主要是應對 http 反向代理的。

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

正篇

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

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

worker_processes 4;
worker_rlimit_nofile 40000;

events {
    worker_connections 8192;
}

stream {
    upstream my_servers {
        least_conn;
        # 5s內(nèi)出現(xiàn)3次錯誤,該服務器將被熔斷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;  # 與被代理服務器建立連接的超時時間為5s
        proxy_timeout 10s;   # 獲取被代理服務器的響應最大超時時間為10s
        proxy_next_upstream on;  # 當被代理的服務器返回錯誤或超時時,將未返回響應的客戶端連接請求傳遞給upstream中的下一個服務器
        proxy_next_upstream_tries 3;   # 轉(zhuǎn)發(fā)嘗試請求最多3次
        proxy_next_upstream_timeout 10s;    # 總嘗試超時時間為10s
        proxy_socket_keepalive on;  # 開啟SO_KEEPALIVE選項進行心跳檢測
        
        proxy_pass my_servers;
    }
}

更多說明

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

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

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

相關(guān)文章

  • nginx限制并發(fā)連接請求數(shù)的方法

    nginx限制并發(fā)連接請求數(shù)的方法

    這篇文章主要介紹了nginx限制并發(fā)連接請求數(shù)的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • 詳解nginx配置url重定向-反向代理

    詳解nginx配置url重定向-反向代理

    這篇文章主要介紹了詳解nginx配置url重定向-反向代理 ,nginx的重定向和nginx的反向代理的原理還是有區(qū)別的。有興趣的可以了解一下。
    2016-12-12
  • Nginx自定義訪問日志的配置方式

    Nginx自定義訪問日志的配置方式

    Nginx日志主要分為兩種:訪問日志和錯誤日志。訪問日志主要記錄客戶端訪問Nginx的每一個請求,格式可以自定義。下面這篇文章主要給大家介紹了Nginx自定義訪問日志的配置方式,需要的朋友可以參考學習,下面來一起看看吧。
    2017-05-05
  • LINUX中NGINX反向代理下的TOMCAT集群(詳解)

    LINUX中NGINX反向代理下的TOMCAT集群(詳解)

    下面小編就為大家?guī)硪黄狶INUX中NGINX反向代理下的TOMCAT集群(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Nginx的安裝和多域名配置的實現(xiàn)方法

    Nginx的安裝和多域名配置的實現(xiàn)方法

    這篇文章主要介紹了Nginx的安裝和多域名配置的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • 1分鐘搞定Nginx版本的平滑升級與回滾的方法

    1分鐘搞定Nginx版本的平滑升級與回滾的方法

    這篇文章主要介紹了1分鐘搞定Nginx版本的平滑升級與回滾的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • 關(guān)于Nginx服務器可視化配置問題

    關(guān)于Nginx服務器可視化配置問題

    Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,在BSD-like 協(xié)議下發(fā)行,這篇文章主要介紹了Nginx服務器可視化配置,需要的朋友可以參考下
    2022-10-10
  • ELK收集Nginx日志的項目實戰(zhàn)

    ELK收集Nginx日志的項目實戰(zhàn)

    本文主要介紹了ELK收集Nginx日志的項目實戰(zhàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Nginx 499錯誤問題及解決辦法

    Nginx 499錯誤問題及解決辦法

    Nginx ("engine x") 是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器,接下來通過本文給大家介紹Nginx 499錯誤問題及解決辦法,一起看看吧
    2016-06-06
  • 基于nginx的靜態(tài)網(wǎng)頁部署的實現(xiàn)

    基于nginx的靜態(tài)網(wǎng)頁部署的實現(xiàn)

    這篇文章主要介紹了基于nginx的靜態(tài)網(wǎng)頁部署的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06

最新評論