Обслуживание React и Django на Nginx с SSL и доменом/поддоменом
У меня есть приложение React и приложение Django, обслуживаемые Nginx. Я хотел бы найти способ обслуживать React на domain.com и Django на api.domain.com. Кроме того, и фронтенд, и бэкенд должны использовать HTTPS, поэтому они должны одновременно прослушивать порт 443. Сейчас у меня есть SSL сертификат для frontend.
- Will changing the server_name for the frontend to
domain.comand the backend toapi.domain.combe enough to handle my requirements? - Is this a better configuration than having my API be served under domain.com/api/?
NGINX Server Block for Frontend
server {
root /home/ubuntu/example/frontend/build;
server_name example.software www.example.software;
index index.html index.htm;
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.software/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.software/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = example.software) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name example.software www.example.software;
return 404; # managed by Certbot
}
NGINX Server Block for Backend
server {
listen 80 default_server;
listen [::]:80 default_server;
location = /favicon.icon { access_log off; log_not_found off; }
location /static/ {
root /home/ubuntu/example/backend/sys;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}