最近在配置负载均衡时,踩了一个坑,记录如下:

[ 问题现象 ]
通过tcp代理不能访问,可能是网络问题。负载均衡显示均正常。
[ 问题实例 ]
lb-uf6huhruvajrw7d9c1ldx
[ 处理意见 ]
查看您80端口是配置的TCP四层监听

四层负载均衡后端添加的Linux系统的ECS实例,必须关闭其Linux内核的rp_filter特性。否则可能会导致无法从客户端使用telnet访问负载均衡的服务地址,但健康检查正常。

Linux的rp_filter特性用于实现反向过滤(即URPF)。它验证反向数据包的流向,以避免IP伪造攻击。但是该特性可能会和负载均衡底层LVS的策略路由产生冲突,导致访问出现异常。

解决方法:确保后端ECS实例的系统配置文件中以下三个参数的值为0。编辑/etc/sysctl.conf后,执行sysctl -p使配置生效。

net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.eth0.rp_filter = 0

您先核实下内核参数是否有误,如果内核参数没有问题,您尝试关闭系统防火墙再测试下

对于nginx配置的一些小细节

1 配置root目录,自定义index.html,调试时可以查看nginx的状态
2 配置代理后端服务的测试页,自定义index.html,调试时可以查看后端服务的状态
Logo

更多推荐