Для моего сервера NGINX у меня есть виртуальный сервер, настроенный только для сбора статического контента. В данный момент я пытаюсь настроить его так, чтобы у изображений была дата истечения срока действия. Однако, когда я создаю директиву местоположения для этого, все просто приводит к 404.
Моя конфигурация сейчас выглядит так:
/srv/www/static.conf
server {
listen 80;
server_name static.*.*;
location / {
root /srv/www/static;
deny all;
}
location /images {
expires 1y;
log_not_found off;
root /srv/www/static/images;
}
}
Обратите внимание, что этот файл включен в /etc/nginx/nginx.conf внутри директивы http
Я пытаюсь получить доступ к фото, на, скажем так ... static.example.com/images/screenshots/something.png
. Конечно же, изображение также существует в /srv/www/static/images/screenshots/something.png
. Однако, переход по указанному адресу не работает и просто говорит мне 404 Не найдено .
Однако, если я удаляю location /images
и изменяю location /
на следующее ...
location / {
root /srv/www/static;
}
Оно работает! Что я здесь не так делаю?
источник
root
изнутриlocation
- плохая практика, почему они сами делают это в docs / http / ngx_http_core_module.html # alias ? (см. там, где написано « лучше использовать директиву root ») ИСПРАВЛЕНИЕ : хорошо, похоже, что неправильно определять первичный корень в местоположении, а не просто в корне