此 HAProxy 配置应提供以下功能:
- Google 主页询问时
http://localhost:9000/google/
- 维基百科主页在请求任何其他内容时
http://localhost:9000
我不确定 HAProxy 的配置文件出了什么问题。我尝试让 HAProxy 记录所有内容stdout
(检查下面的配置详细信息),但当访问由 提供的任何内容时,localhost:9000
我看不到日志行(docker logs -f ...
),而且:我总是返回503 Service Unavailable
。
问题可能出在docker本身,但我找不到排除故障/调试此设置的方法。
- 为什么反向代理规则不起作用?我既看不到 www.google.com,也看不到 www.wikipedia.org?如何解决这个问题?
- 为什么 HAProxy 没有记录任何内容
stdout
?如何解决这个问题?
HAProxy 配置文件:
global
log 127.0.0.1 local0 debug
defaults
log global
mode http
timeout connect 3000
timeout client 3000
timeout server 3000
frontend reverse_proxy_routing_thing
bind *:9000
option tcplog
acl path_google path_beg /google/
use_backend backend_google if path_google
default_backend default_backend_wikipedia
backend default_backend_wikipedia
server my_default_backend_wikipedia www.wikipedia.org
backend backend_google
server my_backend_google www.google.com
docker 文件名为Dockerfile.reverse-proxy
:
FROM haproxy:1.8.14-alpine
COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg
- 我像这样构建docker镜像:
docker build -t rev-proxy-test-i -f Dockerfile.reverse-proxy .
- 我像这样运行 docker 容器(参见端口映射):
docker run -d --name rev-proxy-test-c -p 9000:9000 rev-proxy-test-i