Creé una aplicación Django que tiene dos aplicaciones llamadas "api" y "consumidor". Ahora quiero usar subdominios para ambas aplicaciones. Como api.server.com y server.com . Busqué en línea y encontré django-hosts, así que lo implementé en mi localhost y funciona bien.
Después de eso, lo implementé en la instancia de AWS EC2 y creé un subdominio en Godaddy y apunté tanto el dominio raíz como el subdominio a la IP de mi instancia. El dominio raíz funciona bien, pero cuando trato de ir a api.server.com , me muestra la pantalla predeterminada de bienvenida a Nginx . Por favor ayudame con este problema.
nginx.conf
server{ server_name server.com, api.server.com; access_log /var/log/nginx/example.log; location /static/ { alias /home/path/to/static/; } location / { include proxy_params; proxy_pass http://unix:/home/username/project/project.sock; } }
No necesita el ,
un simple espacio servirá.
server_name server.com api.server.com;
También puede utilizar comodines, consulte la documentación .
server_name *.server.com;
No tiene que usar un complemento (como django-hosts) para lograr lo que está tratando de hacer. Cree 2 configuraciones nginx diferentes para cada subdominio que desee crear (server.com y api.server.com) y reenvíe las solicitudes desde api.server.com
a /api
URL y las solicitudes desde server.com
a /
. El siguiente es un ejemplo básico.
servidor.com
server { listen 80; server_name server.com; location / { proxy_pass http://127.0.0.1:3000$request_uri; } }
api.servidor.com
server { listen 80; server_name api.server.com; location / { proxy_pass http://127.0.0.1:3000/api$request_uri; } }
Recomiendo no depender innecesariamente de complementos de terceros. Consulte https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/ para obtener más detalles.