我有一个正在运行的节点服务器,可以监听3个不同的端口。
我有三个不同的url子域,指向运行/监听节点的服务器的端口80
。
我要做的是使用haproxy
代理将来自子域的请求传递到其各自的端口。
我的节点服务器已固定为主机上公开的端口。我可以使用服务器端口上的IP地址单独打它们,这样它们似乎运行正常。
我的haproxy
也将在docker容器中运行。我对haproxy
完全不熟悉,尽管我对码头工人很有信心。我通过onine文章和博客编写了我的haproxy配置,但是一旦我使用以下命令启动我的docker容器:
docker run --name my-running-haproxy \
-v ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro \
haproxy:1.6.2
我收到以下错误:
来自守护程序的错误响应:./ haproxy.cfg包含本地卷名的无效字符,仅允许[a-zA-Z0-9] [a-zA-Z0-9 _.-]
所以我尝试通过删除配置选项进行调试,直到我有一个非常简约的配置:
global
maxconn 256
debug
defaults
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http-in
bind *:80
default_backend default-server
backend default-server
server s0 127.0.0.1:3000
但我仍然得到同样的错误。
有人可以帮助我吗?
答案 0 :(得分:2)
我遇到了同样的问题并通过使用配置文件的完整路径解决了这个问题。
docker run --name my-running-haproxy \
-v ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro \
haproxy:1.6.2
docker run --name my-running-haproxy \
-v /usr/local/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro \
haproxy:1.6.2
答案 1 :(得分:1)
$ docker -v
Docker version 1.11.2, build b9f10c9
使用相对路径:
示例:
./haproxy.cfg
示例:
./PATH/haproxy.cfg
示例隐藏文件:
./PATH/.haproxy.cfg
-v ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
使用绝对路径:
示例:
/haproxy.cfg
示例:
/PATH/haproxy.cfg
示例隐藏文件:
/PATH/.haproxy.cfg
示例:
$PWD/haproxy.cfg
-v /PATH/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro