Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

507
Vistas
django: nginx: HTTP_HOST no muestra el número de puerto

Tengo el siguiente código ejecutándose en producción.

La configuración de Nginx es la siguiente:

 # first we declare our upstream server, which is our Gunicorn application upstream hello_server { # docker will automatically resolve this to the correct address # because we use the same name as the service: "djangoapp" server webapp:8888; } # now we declare our main server server { listen 8558; server_name localhost; location / { # everything is passed to Gunicorn proxy_pass http://hello_server; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_redirect off; } }

El servidor Nginx tiene redirección de puertos: 8555:8558

Y el comando gunicorn en ejecución es

 gunicorn --bind :8888 basic_django.wsgi:application

Ahora en mi navegador abro esta url:

http://127.0.0.1:8555/login_register_password/user_login_via_otp_form_email

Ahora mi código en una de mis vistas es

 prev_url = request.META['HTTP_REFERER'] # EG: prev_url = http://127.0.0.1:8555/login_register_password/user_login_via_otp_form_email # we want to get the url from namespace . We use reverse. But this give relative url not the full url with domain login_form_email_url_reverse = reverse("login_register_password_namespace:user_login_via_otp_form_email") # EG: login_form_email_url_reverse = "/login_register_password/user_login_via_otp_form_email" # to get the full url we have to use do the below login_form_email_url_reverse_full = request.build_absolute_uri(login_form_email_url_reverse) # EG: login_form_email_url_reverse_full = "http://127.0.0.1/login_register_password/user_login_via_otp_form_email"

Espero que prev_url y login_form_email_url_reverse_full sean iguales pero difieren

el dominio prev_url es http://127.0.0.1:8555 mientras que el dominio login_form_email_url_reverse_full es http://127.0.0.1

por qué está pasando esto.

Esto no sucede en el servidor de desarrollo. usando runserver

 "HTTP_HOST": "127.0.0.1:8555", "HTTP_REFERER": "http://127.0.0.1:8555/login_register_password/user_login_via_otp_form_email",

Donde como con el servidor nginx: HTTP_HOST cambia, es decir, ahora sin número de puerto

 "HTTP_HOST": "127.0.0.1", "HTTP_REFERER": "http://127.0.0.1:8555/login_register_password/user_login_via_otp_form_email",
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Resolví el problema cambiando

 proxy_set_header Host $host;

Para

 proxy_set_header Host $http_host;

en el server {} de local.conf de nginx

Obtuve la respuesta de https://serverfault.com/a/916736/565479

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda