连接到上游时没有实时上游 jwilder/ngnix-proxy

No live upstream while connecting to upstream jwilder/ngnix-proxy

文档对我来说不是很清楚,而且这是我的第一次部署 由于没有实时上游,我不断收到错误 502。

这是代码。

docker.staging.yml

version: '3.8'

networks:
  public_network:
      name: public_network
      driver: bridge

services:
  web:
    build: 
      context: .
      dockerfile: Dockerfile.prod
    command: gunicorn djangotango.wsgi:application --bind 0.0.0.0:8000
    volumes:
      # - .:/home/app/web/
      - static_volume:/home/app/web/static
      - media_volume:/home/app/web/media 
     
    expose:
      - 8000
    env_file:
      - ./.env.staging
    

  db:
    image: postgres:12.0-alpine
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    env_file:
      - ./.env.staging.db
    depends_on: 
      - web
  
  nginx-proxy:
    build: ./nginx
    restart: always
    ports:
      - 443:443  
      - 80:80
    volumes:
      - static_volume:/home/app/web/static
      - media_volume:/home/app/web/media 
      - certs:/etc/nginx/certs
      - html:/usr/share/nginx/html
      - vhost:/etc/nginx/vhost.d
      - /var/run/docker.sock:/tmp/docker.sock:ro
    depends_on:
      - web
    networks:
      - public_network

  nginx-proxy-letsencrypt:
    image: jrcs/letsencrypt-nginx-proxy-companion
    env_file:
      - .env.staging.proxy-companion
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - certs:/etc/nginx/certs
      - html:/usr/share/nginx/html
      - vhost:/etc/nginx/vhost.d
    depends_on:
      - nginx-proxy
    networks:
      - public_network
    
   
volumes:
  postgres_data:
  pgadmin-data:
  static_volume:
  media_volume:
  certs:
  html:
  vhost:

.env.staging.db

VIRTUAL_HOST=djangotango.meghaggarwal.com
VIRTUAL_PORT=8000
LETSENCRYPT_HOST=djangotango.meghaggarwal.com

ngnix Docekrfile

FROM jwilder/nginx-proxy
COPY vhost.d/default /etc/nginx/vhost.d/default
COPY custom.conf /etc/nginx/conf.d/custom.conf

ngnix->vhost.d->default

upstream djangotango {
    server web:8000;
}

server {

    listen 80;
    listen 443;
    server_name djangotango.meghaggarwal.com

    location / {
        proxy_pass http://djangotango;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_redirect off;
     
    }

    location /static/ {
      alias /home/app/web/static/;
      add_header Access-Control-Allow-Origin *;
    }

        location /media/ {
        alias /home/app/web/media/;
        add_header Access-Control-Allow-Origin *;

}

}
      

custom.conf

client_max_body_size 10M;

这里我的web是app所在的容器运行。 我想我误解了这些概念并且没有正确配置 nginx 默认 conf 文件。 Jwilder 反向 ngnix 代理是我没有得到的东西。

请帮帮我。我已经阅读了大部分文档,但运气不好..谢谢

我已经展示了此处所需的最少代码。

我发现了导致上游错误的错误。

由于我为 Web 公开端口 8000,我的 Nginx 无法与 Web 容器通信,因为它们不共享同一个网络。

因此,最好从 compose 中删除网络,以便它们可以相互通信,这是容器的默认行为。