Обслуживание React и Django на Nginx с SSL и доменом/поддоменом

У меня есть приложение React и приложение Django, обслуживаемые Nginx. Я хотел бы найти способ обслуживать React на domain.com и Django на api.domain.com. Кроме того, и фронтенд, и бэкенд должны использовать HTTPS, поэтому они должны одновременно прослушивать порт 443. Сейчас у меня есть SSL сертификат для frontend.

  1. Will changing the server_name for the frontend to domain.com and the backend to api.domain.com be enough to handle my requirements?
  2. 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;
    }
}
Вернуться на верх