实现Nginx tcp负载均衡:

Nginx在1.9.0版本开始支持tcp模式的负载均衡,在1.9.13版本开始支持udp协议的负载,udp主要用于DNS的域名解析,其配置方式和指令和http 代理类似,其基于ngx_stream_proxy_module模块实现tcp负载,另外基于模块ngx_stream_upstream_module实现后端服务器分组转发、权重分配、状态监测、调度算法等高级功能。

官方文档:https://nginx.org/en/docs/stream/ngx_stream_core_module.html


四层负载均衡实例–Redis

服务器安装redis

[root@s4 ~]# yum install redis -y
[root@s4 ~]# vim /etc/redis.conf
bind 0.0.0.0
......
[root@s4 ~]# systemctl start redis
[root@s4 ~]# systemctl enable redis
[root@s4 ~]# ss -tnl | grep 6379
LISTEN 0 128 *:6379 *:*

nginx配置

[root@s2 ~]# mkdir /apps/nginx/conf/tcp

[root@s2 ~]# cat /apps/nginx/conf/tcp/tcp.conf   #自配置文件
stream {    
upstream redis_server {
#hash $remote_addr consistent;
server 192.168.7.104:6379 max_fails=3 fail_timeout=30s;
}
server {
listen 192.168.7.102:6379;
proxy_connect_timeout 3s;
proxy_timeout 3s;
proxy_pass redis_server;
}
}
[root@s2 ~]# vim /apps/nginx/conf/nginx.conf
21 include /apps/nginx/conf/tcp/tcp.conf; 
#注意此处的include与http模块平级
#且文档中的http{}下的include的七层负载的路径不能和四次的在同一目录下
如七层负载在include /apps/nginx/conf/tcp/tcp.conf; 
四层也在include /apps/nginx/conf/tcp/tcp.conf; 那么就会报错

#重启nginx并访问测试

[root@s2 ~]# systemctl restart nginx
[root@s2 ~]# ss -tnl | grep 6379
LISTEN 0 128 192.168.7.102:6379 *:*

#测试通过nginx 负载连接redis:

[root@s4 ~]# redis-cli -h 192.168.7.102
192.168.7.102:6379> set name jack
OK
192.168.7.102:6379> get name
"jack"
192.168.7.102:6379>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值