所有分类
  • 所有分类
  • 未分类

Docker系列–解决nginx的502 Bad Gateway

简介

本文介绍如何解决Docker部署nginx做反向代理时出现502报错的问题。

相关网址

Docker系列-网络的配置 – 自学精灵

情景说明

  1. web程序和nginx都使用docker部署在Ubuntu
  2. web程序是8090端口
  3. 使用nginx做代理,将请求转发到web程序
  4. web程序和nginx已经使用docker compose connect进行了网络连接

nginx配置如下:

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile      on;
    keepalive_timeout  65;
    
    server {
        # 所有IPV4的地址
        listen       80;
        # 所有IPV6的地址
        listen       [::]:80;
        server_name  192.168.5.193;
        client_max_body_size 20m;
        charset utf-8;
      
        location / {
            proxy_set_header HOST $host;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://itthinktank;
        }
    }
    
    upstream itthinktank {
        server 127.0.0.1:8090;
    }
}

问题复现

访问nginx时出现502页面:

原因分析

docker与docker之间的通信是通过虚拟网桥docker0实现的,需要使用docker0的ip表示本地网络,不能使用127.0.0.1。

解决方案

使用docker0的ip。

1.查看docker0的ip

命令:ifconfig

 2.将127.0.0.1改为docker0的ip

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile      on;
    keepalive_timeout  65;
    
    server {
        # 所有IPV4的地址
        listen       80;
        # 所有IPV6的地址
        listen       [::]:80;
        server_name  192.168.5.193;
        client_max_body_size 20m;
        charset utf-8;
      
        location / {
            proxy_set_header HOST $host;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://itthinktank;
        }
    }
    
    upstream itthinktank {
        #server 127.0.0.1:8090;
        server 172.17.0.1:8090;
    }
}
0

评论0

请先

显示验证码
没有账号?注册  忘记密码?

社交账号快速登录