Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

383
Visualizações
Cómo devolver los mensajes de error del proyecto Django cuando uso nginx en modo de producción

Desarrollé el proyecto Django y lo implementé en los servicios EC2 de nivel gratuito de Amazon. Todo está bien, excepto el mensaje de error que no regresa. Estoy usando el proyecto en modo de producción.

Explicación de la imagen de arriba [Registro de consola]:

  1. Solicitud y respuesta exitosas: se realizó para una URL existente

  2. La segunda solicitud se realiza intencionalmente a una URL no existente y no recibió ninguna respuesta.

Quiero obtener al menos una respuesta 404, el problema que tengo es que no tengo ninguna respuesta del servidor. Cuando lo ejecuto en el servidor, vi que está registrando los resultados en el servidor.

Pregunta: Cómo devolver la respuesta que genera Django cuando algo está mal. Información adicional: esos mensajes de error y la respuesta se generan en la plantilla integrada djangorestframework's .

Detalles adicionales:

djangorestframework Diagrama Explicación

Avísame si me falta algo.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

El cerebro hace cosas realmente interesantes cuando está cansado. Gracias a @iklinac. Tenía razón, mejor hubiera usado django-cors-headers correctamente. Ya estaba instalado y funcionando en heroku, cuando me mudé a amazon aws pensé que algo estaba relacionado con NGINX.

Notas para tomar.

  1. pip install django-cors-encabezados

  2. Asegúrate de que esté en tus aplicaciones instaladas.

 INSTALLED_APPS = [ ... 'corsheaders', ... ]
  1. También deberá agregar una clase de middleware para escuchar las respuestas: # que me he perdido
 MIDDLEWARE = [ # Or MIDDLEWARE_CLASSES on Django < 1.10 ... 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', ... ]
  1. Una lista de orígenes que están autorizados para realizar solicitudes HTTP entre sitios
 CORS_ORIGIN_WHITELIST = [ "https://example.com", "https://sub.example.com", "http://localhost:8080", "http://127.0.0.1:9000" ]

Luego, hay algunas otras cosas que puede modificar y usar como desee.

Eventualmente he cambiado mi nginx.conf a siguiente

 upstream hello_django { server web:8000; } server { listen 80; location / { proxy_pass http://hello_django; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_redirect off; } location /staticfiles/ { alias /home/app/web/staticfiles/; } location /mediafiles/ { alias /home/app/web/mediafiles/; } }

Feliz codificación.) créditos a testdriven.io y django-cors-headers

over 4 years ago · Santiago Trujillo Relatório

0

Está pasando solicitudes de proxy y no obtienen add_header correctamente, debe pasar el proxy después de agregar encabezados

 location / { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PATCH, PUT, DELETE'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Headers' 'Authorization,Accept,Origin,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range'; if ($request_method = 'OPTIONS') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PATCH, PUT, DELETE'; # # Custom headers and headers various browsers *should* be OK with but aren't # add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range, Authorization'; # # Tell client that this pre-flight info is valid for 20 days # add_header 'Access-Control-Max-Age' 1728000; add_header 'Content-Type' 'text/plain; charset=utf-8'; add_header 'Content-Length' 0; return 204; } proxy_pass http://app; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_redirect off;

La otra forma sería agregar django-cors-headers en su aplicación

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda