我已配置以下端口范围
cat /proc/sys/net/ipv4/ip_local_port_range
32768 61000
因此,可用端口数为 28232
我将 HAProxy 配置为使用 2 个处理器处理 5000 个连接,因此 HAProxy 将处理 10,000 个并发连接
示例 haproxy.conf 文件
frontend main
bind *:80
acl is_app_user -i ^/myApp/app/.*/user.*
acl is_app_members path_reg -i ^/myApp/.*
use_backend user if is_app_user
use_backend member if is_app_members
backend user
server app1 127.0.0.1:8081
backend member
server app2 member.app.com:443 ssl verify none check
运行 HAProxy 的机器打开了多少个端口?
28232 x 2 = 56,464。由于后端是不同的 IP 地址,或者无论后端服务器如何,源端口始终保持在 28,232?
答案1
只是为了澄清:您的问题是与各自后端建立连接时源端口耗尽的问题,对吗?
一种解决方法可能是为 HAProxy 的网络接口分配更多 IP 地址,并使用source
后端服务器定义中的指令多次分配相同的后端服务器:
backend foo
server appsrv1-1 member.app.com:443 source 10.0.0.10 ssl verify none check
server appsrv1-2 member.app.com:443 source 10.0.0.11 ssl verify none check
server appsrv1-3 member.app.com:443 source 10.0.0.12 ssl verify none check
...
这将为您提供更多可供使用的端口。