我有一台使用 docker-compose 的服务器,使用了镜像haproxy:1.4
。它运行良好,但我想迁移到更新的版本。但从 开始haproxy:2.4
,haproxy 不再起作用。
这是我的配置(除了日志配置,这与我使用 1.4 的配置完全相同):
global
maxconn 256
log stdout format raw local0 debug
defaults
log global
option httplog
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http-in
bind *:80
default_backend test
backend test
server test test:80 maxconn 256
test
是一个运行 Web 服务器的容器。
当我卷曲时,我什么也得不到:
$ curl -vvv 127.0.0.1:80
* Trying 127.0.0.1:80...
* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 80 (#0)
> GET / HTTP/1.1
> Host: 127.0.0.1
> User-Agent: curl/7.68.0
> Accept: */*
>
然后它就永远挂起了(没有超时)。
尽管我配置了日志,但我没有从 haproxy 获得任何日志:
$ docker-compose logs haproxy
haproxy_1 | [NOTICE] (1) : New worker #1 (8) forked
$
请注意,haproxy:2.3
此方法有效。第一个开始失败的版本是 2.4。
这是 docker-compose 配置:
haproxy:
image: "haproxy:2.4"
ports:
- 80:80
sysctls:
- net.ipv4.ip_unprivileged_port_start=0
volumes:
- "/home/user/config/haproxy/:/usr/local/etc/haproxy/"
restart: always
net.ipv4.ip_unprivileged_port_start
为了使用端口 80,我必须添加,但除此之外,这与 1.4 图像的配置相同。
我不知道为什么日志没有显示,也不知道为什么它会挂起。如何解决或调试此问题?