docker领事服务发现

时间:2018-08-29 10:17:22

标签: docker nginx consul

我正在研究SOA系统,并且正在与nginx和注册器一起使用领事服务发现。一切都被码头化了。这个想法是让所有这些后端服务都在docker容器中运行,以便领事服务器可见,并使用nginx作为负载均衡器将请求路由到正确的服务。

我已经成功设置了领事和注册人,并使用领事UI对其进行了测试。如果我启动了在docker内部运行的服务(例如redis),我可以看到领事发现了该服务。我遇到的问题是将nginx配置为连接到上游服务器。我有一堆在容器中运行的PHP服务,我希望nginx连接到正确的上游服务器并提供响应。但是nginx总是返回502。

这是我的nginx.conf文件

upstream app-cluster {
   least_conn;
   {{range service "app-http"}}server {{.Address}}:{{.Port}} 
    max_fails=3 fail_timeout=60 weight=1;
    {{else}}server 127.0.0.1:65535; # force a 502{{end}}
 }

 server {
  listen 80 default_server;
  location / {
    proxy_pass http://app-cluster;
    proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
    proxy_set_header Host \$host;
    proxy_set_header X-Real-IP \$remote_addr;
}

}

nginx错误日志:

2018/08/29 09:56:29 [错误] 27#27:* 7连接到上游时,connect()失败(111:连接被拒绝),客户端:192.168.10.24,服务器:,请求:“ GET / HTTP / 1.1”,上游:“ http://127.0.0.1:32795/”,主机:“ aci-host-01:8080”

有人知道这方面的全面指南吗?或者可能知道问题出在哪里? 预先感谢

0 个答案:

没有答案