Назад | Перейти на главную страницу

Обслуживание дополнительного содержимого каталога под root в Nginx

Используя Nginx с Django, у меня есть следующая запись местоположения в конфигурации моего сервера:

location / {
    include uwsgi_params;
    uwsgi_pass 127.0.0.1:1234;
}

Таким образом, все запросы корневых URL-адресов передаются Django.

Теперь я хотел бы предоставить несколько дополнительных файлов, например robots.txt, favicon.ico, а также неопределенное количество других файлов под корневым URL. Например /robots.txt должен вернуть мой robots.txt файл, который находится в /var/www/project/misc/. Как мне это сделать в Nginx? Кажется, у меня нет нескольких мест для захвата корневого URL "/".

Знаю, могу так:

location /robots.txt {
    alias /var/www/project/misc/robots.txt;
}

Однако мы говорим о множестве разных файлов, и добавление дополнительного места для всех из них кажется довольно неуклюжим. Было бы лучше, если бы существовал способ обслуживания всего каталога под корневым URL.

Просто поместите приложение в его собственное @ специальное место, а затем сначала попробуйте файловую систему.

location / {
    root /var/www/project/misc;
    try_files $uri @wsgiapp;
}

location @wsgiapp {
    include uwsgi_params;
    uwsgi_pass 127.0.0.1:1234;
}