Nenhum upstream ao vivo durante a conexão com o jwilder/ngnix-proxy upstream

0
Voto

A documentação não está clara para mim, assim como esta é minha primeira implantação Continuo recebendo o erro 502 por causa de nenhum upstream ativo.

A documentação não está clara para mim, assim como esta é minha primeira implantação Continuo recebendo o erro 502 por causa de nenhum upstream ativo.

Este é o código.

Este é o código.

docker.staging.yml

docker.staging.yml 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:
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: versão: '3.8' redes: rede pública: nome: public_network motorista: ponte Serviços: rede: Construir: contexto:. dockerfile: Dockerfile.prod comando: 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 expor: -8.000 env_file: -./.env.staging db: imagem: postgres: 12.0-alpine volumes: -postgres_data:/var/lib/postgresql/data / env_file: -./.env.staging.db depende de: -rede nginx-proxy: construir: ./nginx reiniciar: sempre portas: -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 depende de: -rede redes: -rede pública nginx-proxy-letsencrypt: imagem: 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 depende de: -nginx-proxy redes: -rede pública volumes: postgres_data: pgadmin-data: static_volume: media_volume: certs: html: vhost:

.env.staging.db

.env.staging.db .env.staging.db
VIRTUAL_HOST=djangotango.meghaggarwal.com
VIRTUAL_PORT=8000
LETSENCRYPT_HOST=djangotango.meghaggarwal.com
VIRTUAL_HOST=djangotango.meghaggarwal.com VIRTUAL_PORT=8000 LETSENCRYPT_HOST=djangotango.meghaggarwal.com VIRTUAL_HOST=djangotango.meghaggarwal.com VIRTUAL_PORT=8000 LETSENCRYPT_HOST=djangotango.meghaggarwal.com

ngnix Docekrfile

ngnix Docekrfile ngnix Docekrfile
FROM jwilder/nginx-proxy
COPY vhost.d/default /etc/nginx/vhost.d/default
COPY custom.conf /etc/nginx/conf.d/custom.conf
FROM jwilder/nginx-proxy COPY vhost.d/default /etc/nginx/vhost.d/default COPY custom.conf /etc/nginx/conf.d/custom.conf DE jwilder/nginx-proxy COPY vhost.d/default /etc/nginx/vhost.d/default COPIAR custom.conf /etc/nginx/conf.d/custom.conf

ngnix->vhost.d->defaultngnix->vhost.d->defaultngnix->vhost.d->default 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 *;

}

}
      
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 *; } } upstream djangotango { servidor web: 8000; } servidor { escute 80; escute 443; server_name djangotango.meghaggarwal.com localização/{ proxy_pass http: // djangotango; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_redirect off; } localização/estático/{ alias/home/app/web/static /; add_header Access-Control-Allow-Origin *; } localização/mídia/{ alias/home/app/web/media /; add_header Access-Control-Allow-Origin *; } }

custom.conf

custom.conf custom.conf
client_max_body_size 10M;
client_max_body_size 10M; client_max_body_size 10M;

Aqui, minha web é o contêiner onde o aplicativo está sendo executado. Acho que não entendi os conceitos e não configurei o arquivo de configuração padrão do nginx corretamente. O proxy ngnix reverso Jwilder é algo que não entendo.

Aqui, minha web é o contêiner onde o aplicativo está sendo executado. Acho que não entendi os conceitos e não configurei o arquivo de configuração padrão do nginx corretamente. Proxy ngnix reverso Jwilder é algo que eu não entendo.

Por favor me ajude. Eu já passei pela maioria das documentações, mas não tive sorte ... Obrigado

Por favor, me ajude. Eu já passei pela maioria das documentações, mas sem sorte ... Obrigado

Eu mostrei o código mínimo necessário aqui.

Eu mostrei o código mínimo necessário aqui.

Fonte

django nginx docker python jwilder nginx proxy

1 Responda
0
Voto

Eu descobri o bug que causa o erro upstream.

Como eu estava expondo a porta 8000 para a web, meu nginx não conseguia se comunicar com o contêiner da web, pois eles não compartilhavam a mesma rede.

Então, é melhor remover a rede da composição, para que eles possam se comunicar, que é o comportamento padrão do contêiner.

Fonte

Você pode interessar

© 2021   OlaMundo.Org