我有一个正在运行的节点服务器,它在3个不同的端口上进行侦听。
我有一个URL的三个不同子域,该子域指向正在运行/侦听该节点的服务器的端口80

我想要做的是使用haproxy将请求从子域传递到其各自的端口。

我的节点服务器在主机上公开了端口,并进行了 jetty 化。我可以使用其端口上的服务器IP地址单独访问它们,因此它们似乎运行良好。

我的haproxy也将在docker容器中运行。我对haproxy完全陌生,尽管我对docker相当有信心。我通过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
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

但是我仍然遇到同样的错误。

有人可以帮我吗?

最佳答案

我遇到了同样的问题,并通过使用配置文件的完整路径解决了该问题。

原版的

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

关于docker - 来自守护程序的错误响应:(config)包含本地卷名的无效字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34130238/

10-10 18:19
查看更多