Nginx TCP和UDP負載均衡

2022-07-24 06:57:15 字數 2280 閱讀 4921

1 介紹

負載均衡是指有效的通過多個後端伺服器分發網路流量。

nginx能**和負載均衡tcp、udp通訊。tcp(傳輸控制協議)、udp(使用者資料報協議)是許多流行應用程式和服務的協議,例如ldap、mysql和rtmp使用tcp協議,dns、syslog和radius

2 需要

使用--with-stream配置標記構建最新nginx,或最新的nginx+(不需要額外構建步驟)

應用程式、資料庫或服務基於tcp或udp通訊

upstream伺服器執行相同的應用程式、資料庫或服務例項

3 配置反向**

首先,你需要配置反向**,因此,nginx**來自客戶端的tcp連線或udp資料報到upstream組或乙個**伺服器。

開啟nginx配置檔案並執行以下步驟:

建立頂級stream {}塊

stream 上下文中為每個虛擬主機定義乙個或多個server {}配置塊。

stream 配置塊在頂級steam {}上下文,設定upstream組的名字,例如,tcp伺服器steam_backed和udp伺服器dns_servers:

stream 塊中,為每個upstream伺服器新增server指令,指定ip位址或主機名(解析多個ip位址)和必須的埠號。

stream 上下文中的match {}配置塊。指定match {}塊並設定它的名字,例如,tcp_test:

stream 塊或確保在你的配置檔案中存在

建立配置請求的location,例如,upstream_conf。

server {

location /upstream_conf {

在該location中指定upstream_conf指令——乙個能用於解釋和重新配置upstream組的處理器

server {

location /upstream_conf {

upstream_conf;

限制該location的訪問

server {

location /upstream_conf {

upstream_conf;

allow 127.0.0.1;

deny all;

建立共享記憶體區域

stream {

upstream stream_backend {

zone backend 64k;

7.1 動態配置例子

stream {

server backup1.example.com:12345 backup;

server backup2.example.com:12345 backup;

server {

health_check;

server {

location /upstream_conf {

upstream_conf;

allow 127.0.0.1;

deny all;

瀏覽所有備機

新增新伺服器到伺服器組

從伺服器組刪除伺服器

修改指定伺服器

8 tcp和udp負載均衡配置例子

stream {

upstream stream_backend {

least_conn;

server backend1.example.com:12345 weight=5;

server backend2.example.com:12345 max_fails=2 fail_timeout=30s;

server backend3.example.com:12346 max_conns=3;

upstream dns_servers {

least_conn;

server 192.168.136.130:53;

server 192.168.136.131:53;

server 192.168.136.132:53;

server {

listen 12345;

proxy_pass backend;

proxy_timeout 3s;

proxy_connect_timeout 1s;

server {

listen 53 udp;

proxy_pass dns_servers;

server {

listen 12346;

proxy_pass backend.example.com:12346;

springcloud(Ribbon負載均衡)

搭建步驟 1.使用者服務的集群 2.訂單服務整合ribbon 2.1.匯入ribbon的依賴 2.2.在resttemplate的bean定義方法上加上 loadbalanced註解 2.3.把訂單的controller向使用者發起呼叫的resttemplate的url使用服務名呼叫,如 http ...

SpringCloud Ribbon 負載均衡

ribbon eureka都是netflix旗下的專案,eureka client內建了ribbon,用於實現負載均衡,預設使用輪詢。輪詢是最簡單的負載均衡演算法,每次呼叫服務拿到節點列表後,從前往後依次輪詢類表中的每個節點,誰空閒就呼叫誰。測試時往往都是呼叫列表的第乙個節點,因為重新整理的手速遠遠...

linux centos nginx做負載均衡

nginx 是 c語言 開發,建議在 linux 上執行,當然,也可以安裝 windows 版本,本篇則使用 centos 7 作為安裝環境。一.gcc 安裝 yum install gcc c 二.pcre pcre devel 安裝pcre perl compatible regular exp...