Как должен обслуживаться index.html с помощью django gunicorn и nginx?

Мое веб-приложение полностью докеризовано и написано на бэкенде django и gunicorn и фронтенде nginx. nginx нужен в качестве прокси и для обслуживания статических файлов. nginx имеет доступ к статическим файлам через смонтированный том из django. Я бы хотел, чтобы весь фронтенд не был шаблонами django. Я не понимаю, может ли index.html напрямую управляться nginx, как в этой первой конфигурации. (первый nginx.conf) или же запрос должен независимо сначала дойти до django, а затем, убедившись, что нужный файл является статическим (index.html), быть перенаправлен с изменением url в /static/... чтобы nginx мог его перехватить. (второй nginx.conf).

Спасибо всем, кто в конечном итоге поможет мне. Извините, если, возможно, мой вопрос родился из невежества, и, пожалуйста, не стесняйтесь учить меня, если это необходимо.

сервер { listen 443 ssl;

bash Скопируйте код # Конфигурация SSL/TLS ssl_certificate /etc/ssl/certs/server.crt; ssl_certificate_key /etc/ssl/private/server.key;

# Define the location of static files
location / {
    root /var/www/html/static/;
    index index.html;
}

location /api/ {
    include proxy_params;
    proxy_pass http://backend:8000;
}

location /static/ {
   alias /var/www/html/static/;
}

}

сервер { listen 443 ssl;

bash Скопируйте код # Конфигурация SSL/TLS ssl_certificate /etc/ssl/certs/server.crt; ssl_certificate_key /etc/ssl/private/server.key;

# Define the location of static files
location / {
    proxy_pass http://backend:8000;
}

location /static/ {
   alias /var/www/html/static/;
}

} Второй подход, казалось бы, делает рабочий процесс более плавным, но в то же время кажется, что он делает бесполезный шаг (зайти в кулак на django только для того, чтобы быть перенаправленным, как будто мы не знаем, что это произойдет в любом случае).

Вернуться на верх