我在Docker中遇到Nginx的奇怪情况。
我有3个容器作为Docker swarm中的服务运行。
Docker版本为:Person
运行swarm的Docker命令是:17.03.1-ce, build c6d412e.
Docker撰写文件位于:https://raw.githubusercontent.com/sodrian/synergy/master/docker-compose.yml
奇怪的是如下:
如果我使用与此类似的80端口nginx服务器指令,一切正常:
docker deploy -c docker-compose.yml synergy
如果使用443指令,我会不断收到错误:
server {
listen 80;
server_name SOME_NAME.com;
location / {
uwsgi_pass synergy_uwsgi:8001;
include uwsgi_params;
}
}
Nginx错误:server {
listen 443 ssl;
server_name SOME_NAME.com;
ssl_certificate SOME_PATH;
ssl_certificate_key SOME_OTHER_PATH;
location / {
uwsgi_pass synergy_uwsgi:8001;
include uwsgi_params;
}
}
我必须编写脚本
https://raw.githubusercontent.com/sodrian/synergy/master/deploy/nginx/synergy_uwsgi_resolve.sh
并将nginx容器上的CMD更改为:
host not found in upstream "synergy_uwsgi"
让它运行。
所以问题是:为什么nslookup可以解析synergy_uwsgi主机,但是nginx不能?