Docker nginx服务将不接受连接,而单个副本则接受

问题描述 投票:0回答:1

我的docker swarm具有使用Nginx代理访问Report服务的API服务。 Nginx代理仅执行proxy_pass并在2个副本中运行。我在通过服务名称或服务IP访问Nginx代理时遇到问题。有时它可以工作,但主要是我得到以下响应:

# curl 'http://nginx-proxy:8000/v1/report?id=662867'
curl: (7) Couldn't connect to server
# curl 'http://10.0.17.13:8000/v1/report?id=662867'
curl: (7) Couldn't connect to server

另一方面,如果我通过IP或从外部docker网络访问单个副本,则效果很好:

# curl 'http://10.0.17.14:8000/v1/report?id=662867'
0   662867  0   10  6   6   0.0 194 3   5   437
# curl 'http://10.0.17.18:8000/v1/report?id=662867'
0   662867  0   10  6   6   0.0 194 3   5   437

诸如内部Docker平衡器之类的感觉被大量请求所淹没,并停止接受新连接。 nginx日志中没有错误-每个请求的状态为200。但是API日志显示了这一点:

INFO Cannot get online report: Get http://nginx-proxy:8000/v1/report?id=732743: dial tcp 10.0.17.13:8000: connect: cannot assign requested address caller=/go/src/api/src/reader.go:300 (*ReaderCursor).readOnline
INFO Cannot get online report: Get http://nginx-proxy:8000/v1/report?id=732703: dial tcp 10.0.17.13:8000: connect: cannot assign requested address caller=/go/src/api/src/reader.go:300 (*ReaderCursor).readOnline

我使用的是官方Nginx图像,仅将worker_processes auto;从1修改为自动。

任何想法哪里可能是错误的或在哪里寻找?

docker nginx docker-swarm
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.