gpt4 book ai didi

docker - nginx反向代理到可能已脱机的docker

转载 作者:行者123 更新时间:2023-12-02 19:34:49 25 4
gpt4 key购买 nike

我尝试生成一个Nginx docker ,它将我的请求重定向到其他 docker 。

但是其他Docker可能会脱机。

从我的nginx docker分层时,出现以下错误:

"host not found in upstream "es_dev" in "/etc/nginx/nginx.conf"

是否可以通过这种方式运行Nginx?并且,如果其中一个docker没有启动,则显示html-error-page?

这是我的配置文件:
http {

server {
listen 80;
server_name XXXXXXXXXXXXX.de;
rewrite ^ https://$server_name$request_uri? permanent;
}

server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/XXXXXXXXXXXXX.crt;
ssl_certificate_key /etc/ssl/XXXXXXXXXXXXX.key;
ssl_client_certificate /etc/ssl/XXXXXXXXXXXXX.crt;
ssl_verify_client on;
ssl_verify_depth 2;

location /dev/ {
proxy_pass http://dev:200/;
resolver 127.0.0.11;
}
location /staging/ {
proxy_pass http://staging:200/;
resolver 127.0.0.11;
}
location /live/ {
proxy_pass http://live:200/;
resolver 127.0.0.11;
}
}
}

2017:10.19:

首先我跑:
docker run --name nginx -v /var/run/docker.sock:/tmp/docker.sock -d -p 80:80 -p 443:443 nginx

然后:
docker run --link=nginx --name dev -d image1

结果:Nginx返回502-错误的网关

最佳答案

当您将解析器resolver 127.0.0.11;添加到您的位置时,当另一个容器不可用时,nginx将启动。

您的配置必须如下所示:

http {

server {
listen 80;
server_name XXXXXXXXXXXXX.de;
rewrite ^ https://$server_name$request_uri? permanent;
}

server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/XXXXXXXXXXXXX.crt;
ssl_certificate_key /etc/ssl/XXXXXXXXXXXXX.key;
ssl_client_certificate /etc/ssl/XXXXXXXXXXXXX.crt;
ssl_verify_client on;
ssl_verify_depth 2;

location /dev/ {
proxy_pass http://dev:200/;
resolver 127.0.0.11;
}
location /staging/ {
proxy_pass http://staging:200/;
resolver 127.0.0.11;
}
location /live/ {
proxy_pass http://live:200/;
resolver 127.0.0.11;
}
}
}
127.0.0.11是嵌入式docker DNS服务器

关于docker - nginx反向代理到可能已脱机的docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46790441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com