proyectos - Dividir proyecto Django en subdominios
tutorial django (1)
Actualmente estoy desarrollando un sitio donde la funcionalidad debe dividirse en subdominios separados, dashboard.example.com
, admin.example.com
y facebook.example.com
. Me gustaría que todo se sirviera a través de un único proyecto de Django porque todo estará usando los mismos modelos básicos. Estoy usando Nginx como un servidor proxy de frente que maneja archivos estáticos y pasa todas las demás solicitudes a Apache.
La solución que pensé fue asignar cada uno de estos subdominios a la aplicación adecuada a través de nginx:
server {
listen 80;
server_name dashboard.example.com;
...
location / {
proxy_pass http://127.0.0.1/dashboard/;
...
}
}
server {
listen 80;
server_name admin.example.com;
...
location / {
proxy_pass http://127.0.0.1/admin/;
...
}
}
... haciendo eso para cada subdominio, asignando efectivamente los subdominios a sus respectivos espacios de nombres de URL de la aplicación. El problema que encontré fue que Django no conocía el mapeo, por lo que cuando revertía una URL, lo anteponía /dashboard/
, etc., creando URL como dashboard.example.com/dashboard/dashboard/
. Me imagino que podría escribir una función reverse
personalizada para quitar el subdirectorio innecesario, pero eso parece una curita.
¿Hay una mejor manera de lograr lo que necesito, o debería reestructurar el proyecto?
Gracias por tu ayuda.
El marco de Sitios de Django ( https://docs.djangoproject.com/en/1.7/ref/contrib/sites/ ) debería ser suficiente para esto, de lo contrario, eche un vistazo a django-subdominios ( http: // django-subdominios. readthedocs.org/en/latest/ ) ya que parece tener un medio para resolver tus URLs inversas (basado en una búsqueda rápida en Google, ¡nunca lo he usado yo mismo!)