Nginx配置Tcp負(fù)載均衡的方法
本文使用Nginx作為代理服務(wù)器,用來(lái)做負(fù)載均衡。只是一個(gè)簡(jiǎn)單的應(yīng)用示例,并不涉及原理。

(這里主機(jī)有限,42.192.22.128主機(jī)8000端口用來(lái)做代理服務(wù)器監(jiān)聽(tīng)端口,8181是服務(wù)監(jiān)聽(tīng)端口)
客戶端訪問(wèn)代理服務(wù)器,由代理服務(wù)器分發(fā)請(qǐng)求給相應(yīng)的服務(wù)端。
修改Nginx的配置文件來(lái)配置Tcp負(fù)載均衡(Nginx安裝后配置文件在/usr/local/nginx/conf/nginx.config中,Nginx可執(zhí)行程序在/usr/local/nginx/sbin目錄下)
在nginx.conf配置文件中添加如下字段:

stream {
? ? upstream Server {
? ? ? ? server 42.192.22.128:8181 weight=1 max_fails=3 fail_timeout=30s;
? ? ? ? server 1.13.180.100:8181 weight=1 max_fails=3 fail_timeout=30s;
? ? }
? ? server {
? ? ? ? listen 8000;
? ? ? ? proxy_pass Server;
? ? }
}這里主要涉及兩個(gè)配置塊upstream和server
在upstream中定義了兩臺(tái)主機(jī),weight表示權(quán)重,兩臺(tái)主機(jī)都為1,說(shuō)明代理服務(wù)器會(huì)平分客戶端請(qǐng)求給上游服務(wù)器,max_fails與fail_timeout配合使用,指在fail_timeout時(shí)間段內(nèi),如果向當(dāng)前的上游服務(wù)器轉(zhuǎn)發(fā)失敗次數(shù)超過(guò)3次,則認(rèn)為在當(dāng)前的fail_timeout時(shí)間段內(nèi)這臺(tái)上游服務(wù)器不可用。fail_timeout表示該時(shí)間段內(nèi)轉(zhuǎn)發(fā)失敗多少次后就認(rèn)為上游服務(wù)器暫時(shí)不可用。server中指定了代理服務(wù)器監(jiān)聽(tīng)的端口號(hào)8000,proxy_pass指定upstream塊中的名字Server。
配置完成后,使用nginx -s reload使運(yùn)行中的Nginx重讀配置項(xiàng)并生效。
上游服務(wù)器使用“瑞士軍刀”nc命令來(lái)模擬TCP服務(wù)端,監(jiān)聽(tīng)在相應(yīng)的端口:(這里的Ip地址是云主機(jī)的內(nèi)網(wǎng)ip)

客戶端用一個(gè)簡(jiǎn)單的Qt小程序模擬一下:
void Widget::on_btnConnection_clicked()
{
? ? m_pTcpSocket->connectToHost(ui->lineeditIp->text(), ui->lineeditPort->text().toUShort());
? ? qDebug() << m_pTcpSocket->state();
}
void Widget::on_btnSend_clicked()
{
? ? qDebug() << m_pTcpSocket->state();
? ? QByteArray byteArray;
? ? byteArray.append(ui->texteditMsg->toPlainText());
? ? const char *pChatMsg = byteArray.data();
? ? qDebug() << m_pTcpSocket->write(pChatMsg, byteArray.size());
}先后啟動(dòng)兩個(gè)客戶端,通過(guò)TCP連接至42.192.22.128:8000,并發(fā)送消息,可以看到消息被分發(fā)到了兩臺(tái)主機(jī)上,說(shuō)明客戶端的請(qǐng)求確實(shí)被分發(fā)到了不同的服務(wù)端上。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- nginx tcp負(fù)載均衡的具體實(shí)現(xiàn)
- 使用Nginx實(shí)現(xiàn)端口轉(zhuǎn)發(fā)TCP代理的實(shí)現(xiàn)示例
- Nginx stream 配置代理(Nginx TCP/UDP 負(fù)載均衡)
- nginx支持tcp轉(zhuǎn)發(fā)的配置分享
- 在Nginx服務(wù)器中配置針對(duì)TCP的負(fù)載均衡的方法
- nginx搭建tcp代理服務(wù)器
- nginx基于tcp做負(fù)載均衡的方法
- Nginx 實(shí)現(xiàn) TCP/DUP流量按 IP 動(dòng)態(tài)轉(zhuǎn)發(fā)操作方法
相關(guān)文章
使用nginx如何實(shí)現(xiàn)請(qǐng)求轉(zhuǎn)發(fā)的功能
文章介紹了如何配置Nginx作為反向代理服務(wù)器,實(shí)現(xiàn)請(qǐng)求轉(zhuǎn)發(fā)和負(fù)載均衡,并進(jìn)行了靜態(tài)和動(dòng)態(tài)內(nèi)容分離,主要步驟包括修改Nginx默認(rèn)端口、配置轉(zhuǎn)發(fā)規(guī)則和修改配置文件2024-12-12
基于nginx設(shè)置瀏覽器協(xié)商緩存過(guò)程詳解
這篇文章主要介紹了基于nginx設(shè)置瀏覽器協(xié)商緩存過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
Nginx 正向代理和反向代理的配置實(shí)現(xiàn)
Nginx通過(guò)優(yōu)秀的架構(gòu)設(shè)計(jì)和高效的算法實(shí)現(xiàn)了高性能和高可靠性,本文主要介紹了Nginx 正向代理和反向代理的配置實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-06-06
nginx用正則表達(dá)式實(shí)現(xiàn)泛域名自動(dòng)匹配目錄的方法
這篇文章主要介紹了nginx用正則表達(dá)式實(shí)現(xiàn)泛域名自動(dòng)匹配目錄的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
Nginx搭建RTMP流媒體服務(wù)器的實(shí)現(xiàn)
本文主要介紹了Nginx搭建RTMP流媒體服務(wù)器的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
Nginx 實(shí)現(xiàn) TCP/DUP流量按 IP 動(dòng)態(tài)轉(zhuǎn)發(fā)操作方法
為優(yōu)化網(wǎng)絡(luò)性能和提升服務(wù)可用性,通過(guò)Nginx配置stream模塊根據(jù)客戶端IP地址動(dòng)態(tài)轉(zhuǎn)發(fā)TCP請(qǐng)求至不同后端服務(wù)器節(jié)點(diǎn),適用于數(shù)據(jù)庫(kù)代理、TCP服務(wù)負(fù)載均衡及地域或來(lái)源IP分流的流量調(diào)度等場(chǎng)景,本文給大家介紹Nginx 實(shí)現(xiàn) TCP/DUP流量按 IP 動(dòng)態(tài)轉(zhuǎn)發(fā)的操作2024-10-10
Nginx Proxy Manager輕松搭建反向代理的實(shí)現(xiàn)
NginxProxyManager是一款開(kāi)源的反向代理和SSL證書(shū)管理工具,本文主要介紹了Nginx Proxy Manager輕松搭建反向代理的實(shí)現(xiàn),感興趣的可以了解一下2025-02-02
nginx使用replace-filter-nginx-module實(shí)現(xiàn)內(nèi)容替換的示例
本篇文章主要介紹了nginx使用replace-filter-nginx-module實(shí)現(xiàn)內(nèi)容替換的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03

