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

271
Vistas
Hacer que Django maneje el sufijo del subdominio

Estamos alojando varias aplicaciones web dockerizadas en nuestro servidor web, llamémoslo group.example.com . Sin embargo, nuestros subdominios se manejan a través de nginx como sufijos, lo que se traduce en algo como group.example.com/app1/ group.example.com/app2/ como direcciones URL raíz.

Sin embargo, cuando usamos Django, nos encontramos con problemas, ya que todas sus URL generadas por url en las plantillas como <a href="{% url 'index' %}">home</a> serán enlaces relativos, por lo que se representarán en <a href="/">home</a> . Este vínculo relativo no se interpretará correctamente y conducirá a la página principal, que no es de la aplicación, group.example.com .

Entonces, el objetivo es tener un prefijo basado en la aplicación como /app1/ para todos los enlaces. Puedo codificarlos para enlaces estáticos, pero tiene que haber una forma más elegante. Además, esto genera un problema para los formularios utilizados que se envían a la página incorrecta, redirigiendo nuevamente a la página principal, que no es de la aplicación, group.example.com .

Intenté agregar /app1/ a todas las direcciones URL registradas como prefijo, pero tampoco parece funcionar; de esa manera, la aplicación se ejecuta, pero el usuario debe visitar group.example.com/app1/app1/ para acceder al índice. , y los enlaces relativos siguen sin funcionar correctamente.

En el contenedor docker de la aplicación, estamos ejecutando la aplicación web con nginx y uwsgi . Funciona bien cuando se usan los subdominios correctos, como app1.example2.com , pero no tenemos esa capacidad en nuestro nuevo servidor web más rápido en el que queremos alojar la aplicación.

¿Hay alguna manera de resolver esto usando los contenedores de aplicaciones nginx , uwsgi o django /middleware config para obtener los enlaces para resolver group.example.com/app1/ como root?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Que yo sepa, hay dos formas de solucionarlo.

Uno usa SCRIPT_NAME en la configuración de NGINX. Por ejemplo, basado en esta respuesta de falla del servidor :

 location /app1/ { SCRIPT_NAME /app1; # rest of the config }

Dos Puede agregar FORCE_SCRIPT_NAME en su configuración.py:

 FORCE_SCRIPT_NAME = '/app1'

FYI, preferiría usar la primera solución.

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