我正在研究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”
有人知道这方面的全面指南吗?或者可能知道问题出在哪里? 预先感谢