nginx - docker nginx 出现 "502".1 上游服务器在连接到上游时暂时禁用

标签 nginx docker

我在docker中使用nginx,这是我的nginx配置

server {    listen  80;     server_name saber;

    location / {        
       root /usr/share/nginx;       
       index index.html;
}

    location /saber {       
        proxy_pass http://localhost:8080;   
        proxy_redirect off;     
        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_buffer_size 4k;       
        proxy_buffers 4 32k;        
        proxy_busy_buffers_size 64k;    
        proxy_connect_timeout 90;   
    }

}

当我在浏览器中使用“http://localhost/saber/blog/getBlog.do”时,浏览器给我一个“502”的错误。
和 nginx 的 error.log 有新的。
2017/07/09 05:16:18 [warn] 5#5: *1 upstream server temporarily disabled while connecting to upstream, client: 172.17.0.1, server: saber, request: "GET /saber/blog/getBlog.do HTTP/1.1", upstream: "http://127.0.0.1:8080/saber/blog/getBlog.do", host: "localhost"

我可以保证“http://127.0.0.1:8080/saber/blog/getBlog.do”在浏览器中响应成功。
我尝试在其他问题中搜索答案,我发现答案是“/usr/sbin/setsebool httpd_can_network_connect true”,这是问题网址“nginx proxy server localhost permission denied”,但我在 win10 中使用 docker,nginx 容器不t hava setsebool,because the container don t 找到 SELinux。
这一切,提前谢谢你。

最佳答案

每个容器内的本地主机(如 nginx 容器)与容器外的 localhost 不同。默认情况下,每个容器都有自己的网络命名空间。您需要将容器放在同一个 docker 网络(不是默认的桥接网络)上,而不是指向 localhost,并使用容器或服务名称与 Docker 的内置 DNS 进行连接。目标端口也将是容器端口,而不是主机上的已发布端口。

关于nginx - docker nginx 出现 "502".1 上游服务器在连接到上游时暂时禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44994898/

相关文章:

Heroku 本地 : "http" directive is duplicate

docker - 使用 nginx、kubernetes 和 docker 服务 Assets

ssl - 拒绝所有带有 nginx 和 ssl 的子域。

mysql - 使用docker compose并使用mariadb 10.4.8 docker容器对用户 'root' @'localhost'的访问被拒绝,并在附加外部卷时发出

mysql - 我想删除 "Mysql2::Error::ConnectionError (Unknown MySQL server host ' db' (0)) :"

angular - 无响应:无法通过dockerize和运行angular app

python - 如何在同一个vps上运行python、java、php、nodejs、ruby应用程序?

node.js - Node 和 docker - 如何处理 babel 或 typescript 构建?

java - 如何参数化Dockerfile?

docker - 当 'docker-machine ls' 显示正在运行的容器时,空 'docker ps' 输出是否有效?