Nginx配置Tcp負(fù)載均衡的方法
本文使用Nginx作為代理服務(wù)器,用來做負(fù)載均衡。只是一個(gè)簡單的應(yīng)用示例,并不涉及原理。
(這里主機(jī)有限,42.192.22.128主機(jī)8000端口用來做代理服務(wù)器監(jiān)聽端口,8181是服務(wù)監(jiān)聽端口)
客戶端訪問代理服務(wù)器,由代理服務(wù)器分發(fā)請求給相應(yīng)的服務(wù)端。
修改Nginx的配置文件來配置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
中定義了兩臺主機(jī),weight
表示權(quán)重,兩臺主機(jī)都為1,說明代理服務(wù)器會平分客戶端請求給上游服務(wù)器,max_fails
與fail_timeout
配合使用,指在fail_timeout
時(shí)間段內(nèi),如果向當(dāng)前的上游服務(wù)器轉(zhuǎn)發(fā)失敗次數(shù)超過3次,則認(rèn)為在當(dāng)前的fail_timeout
時(shí)間段內(nèi)這臺上游服務(wù)器不可用。fail_timeout
表示該時(shí)間段內(nèi)轉(zhuǎn)發(fā)失敗多少次后就認(rèn)為上游服務(wù)器暫時(shí)不可用。server
中指定了代理服務(wù)器監(jiān)聽的端口號8000
,proxy_pass
指定upstream
塊中的名字Server
。
配置完成后,使用nginx -s reload
使運(yùn)行中的Nginx重讀配置項(xiàng)并生效。
上游服務(wù)器使用“瑞士軍刀”nc
命令來模擬TCP服務(wù)端,監(jiān)聽在相應(yīng)的端口:(這里的Ip地址是云主機(jī)的內(nèi)網(wǎng)ip)
客戶端用一個(gè)簡單的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()); }
先后啟動兩個(gè)客戶端,通過TCP連接至42.192.22.128:8000
,并發(fā)送消息,可以看到消息被分發(fā)到了兩臺主機(jī)上,說明客戶端的請求確實(shí)被分發(fā)到了不同的服務(wù)端上。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Nginx配置80端口訪問8080及項(xiàng)目名地址方法解析
這篇文章主要介紹了Nginx配置80端口訪問8080及項(xiàng)目名地址方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Nginx upstream的5種權(quán)重分配方式分享
Nginx upstream的5種權(quán)重分配方式分享,需要的朋友可以參考下2012-09-09nginx添加nginx-sticky-module模塊步驟的實(shí)現(xiàn)
nginx-sticky-module模塊是nginx實(shí)現(xiàn)負(fù)載均衡的一種方案,和ip_hash負(fù)載均衡算法會有區(qū)別的,本文主要介紹了nginx添加nginx-sticky-module模塊步驟的實(shí)現(xiàn),感興趣的可以了解一下2023-08-08使用nginx+tomcat+keepalived實(shí)現(xiàn)高可用的詳細(xì)步驟
這篇文章主要介紹了nginx+tomcat+keepalived實(shí)現(xiàn)高可用,包括安裝nginx服務(wù)的步驟,詳細(xì)介紹了安裝keepalived的方法,對nginx+tomcat+keepalived高可用相關(guān)知識感興趣的朋友一起看看吧2022-03-03Nginx配置Https安全認(rèn)證的實(shí)現(xiàn)
為了保障應(yīng)用的安全性,我們在架構(gòu)網(wǎng)絡(luò)層的時(shí)候需要采用HTTPS協(xié)議。本文介紹了Nginx配置Https安全認(rèn)證的實(shí)現(xiàn),分享給大家,感興趣的可以了解一下2021-05-05nginx配置ssl證書實(shí)現(xiàn)https訪問的示例
這篇文章主要介紹了nginx配置ssl證書實(shí)現(xiàn)https訪問的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03