温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Nginx如何配置Tcp负载均衡

发布时间:2022-07-27 09:27:52 来源:亿速云 阅读:147 作者:iii 栏目:开发技术

本文小编为大家详细介绍“Nginx如何配置Tcp负载均衡”,内容详细,步骤清晰,细节处理妥当,希望这篇“Nginx如何配置Tcp负载均衡”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

本文使用Nginx作为代理服务器,用来做负载均衡。只是一个简单的应用示例,并不涉及原理。

Nginx如何配置Tcp负载均衡

(这里主机有限,42.192.22.128主机8000端口用来做代理服务器监听端口,8181是服务监听端口)
客户端访问代理服务器,由代理服务器分发请求给相应的服务端。
修改Nginx的配置文件来配置Tcp负载均衡(Nginx安装后配置文件在/usr/local/nginx/conf/nginx.config中,Nginx可执行程序在/usr/local/nginx/sbin目录下)
nginx.conf配置文件中添加如下字段:

Nginx如何配置Tcp负载均衡

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;
    }
}

这里主要涉及两个配置块upstreamserver
upstream中定义了两台主机,weight表示权重,两台主机都为1,说明代理服务器会平分客户端请求给上游服务器,max_failsfail_timeout配合使用,指在fail_timeout时间段内,如果向当前的上游服务器转发失败次数超过3次,则认为在当前的fail_timeout时间段内这台上游服务器不可用。fail_timeout表示该时间段内转发失败多少次后就认为上游服务器暂时不可用。
server中指定了代理服务器监听的端口号8000proxy_pass指定upstream块中的名字Server
配置完成后,使用nginx -s reload使运行中的Nginx重读配置项并生效。
上游服务器使用“瑞士军刀”nc命令来模拟TCP服务端,监听在相应的端口:(这里的Ip地址是云主机的内网ip)

Nginx如何配置Tcp负载均衡

客户端用一个简单的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());
}

先后启动两个客户端,通过TCP连接至42.192.22.128:8000,并发送消息,可以看到消息被分发到了两台主机上,说明客户端的请求确实被分发到了不同的服务端上。

Nginx如何配置Tcp负载均衡

读到这里,这篇“Nginx如何配置Tcp负载均衡”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI