Docker Nginx 502 Bad getway

502基本上表示nginx无法完成本次转发 基本上就是下面两种情况

    1. 后台服务没有启动
    1. nginx配置文件有误

好家伙这不是废话?

等等别忙走,遇到错误不可怕可怕的是不去思考只会去网上看帖子,然后给人家骂一顿 然后并没有解决问题。

首先来看一下Nginx的配置文件:

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

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

    location /api{
        proxy_pass http://127.0.0.1:9501;
        # access_log "logs/test.log";
    }
  
}

上面的配置文件看上去似乎没有任何问题。但是却忽略了一点:我们的Nginx是跑在docker容器中的。我们查看docker的日志:

sudo docker logs nginx(你的nginx容器name)

日志的部分内容:

在这里插入图片描述
很快啊 我啪地一下就醒悟了。我们的nginx无法与我们的应用程序通信。

在这里插入图片描述docker 的网段 是以172.xxx.xxx.xxx

所以nginx的转发应该写成:

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
	    if (!-e $request_filename) {
             proxy_pass http://172.17.0.1:9501;
        }
        if (!-f $request_filename) {
             proxy_pass http://172.17.0.1:9501;
        }
    }
}

终于可以睡觉了 good night ~

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页