最佳答案
关于我的 haxy 配置,我有一个问题:
#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
log 127.0.0.1 syslog emerg
maxconn 4000
quiet
user haproxy
group haproxy
daemon
#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
mode http
log global
option abortonclose
option dontlognull
option httpclose
option httplog
option forwardfor
option redispatch
timeout connect 10000 # default 10 second time out if a backend is not found
timeout client 300000 # 5 min timeout for client
timeout server 300000 # 5 min timeout for server
stats enable
listen http_proxy localhost:81
balance roundrobin
option httpchk GET /empty.html
server server1 myip:80 maxconn 15 check inter 10000
server server2 myip:80 maxconn 15 check inter 10000
正如您所看到的,它是直截了当的,但是我对 maxconi 属性是如何工作的感到有点困惑。
在 listen 块中,服务器上有一个全局的数据库和 maxconi。我的想法是这样的: 全局连接管理作为服务的 haxy 将在同一时间排队或处理的连接总数。如果数字超过这个数字,它要么终止连接,要么在某个 linux 套接字池?我不知道如果数字超过4000会发生什么。
然后,将服务器 maxconi 属性设置为15。首先,我将它设置为15,因为我的 php-fpm 是在一个单独的服务器上转发的,它只有这么多子进程可以使用,所以我确保将请求集中在这里,而不是在 php-fpm 中。我觉得这样更快。
但回到主题上,我的理论是这个区域里的每个服务器一次只能发送15个连接。然后连接将等待一个打开的服务器。如果我打开了 cookie,连接将等待 CORRECT 打开的服务器。但我没有。
所以问题是:
先谢谢你。