我有一个***nginx_proxy***服务,需要***nginx_1***和***nginx_2***同时运行,如果其中一个没有运行,则***nginx_proxy***会崩溃,因为它可以解析服务的IP
下面是***nginx_proxy***配置:
server {
listen 80;
server_name www.app1.com;
location / {
proxy_pass http://nginx_1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_http_version 1.1;
}
}
server {
listen 80;
server_name www.app2.com;
location / {
proxy_pass http://nginx_2;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_http_version 1.1;
}
}
这是堆栈:
version: '3.9'
services:
nginx_proxy:
{...}
nginx_1:
{...}
nginx_2:
{...}
既然***depends_on***在swarm模式下不起作用,而且this solution也会给出services.nginx.depends_on must be a list
错误,还有其他选择吗?
1条答案
按热度按时间tgabmvqs1#
我做了一些研究和测试,然后我意识到了一些事情。
根据link:
docker stack deploy
命令支持任何版本为“3.0”或更高版本的合成文件根据这个链接:
在swarm模式下使用版本3 Compose文件部署堆栈时,将忽略
depends_on
选项所以你现在没有其他选择。