Моя установка nginx содержит следующие правила расположения:
location ~* \.(jpg|jpeg|png|gif|ico|css|js|pdf)$ {
expires 7d;
}
location /data/ {
root /mnt/data;
}
Проблема в том, что когда я пытаюсь получить доступ к одному из следующих файлов (jpg | jpeg | png | gif | ico | css | js | pdf) в папке / data /, я получаю ошибку 404 Not Found, потому что первое правило местоположения отменяет второй. Я пробовал сделать что-то вроде этого:
location ~* /data/.*\.jpg$ {
root /mnt/data;
expires 7d;
}
Но, похоже, это не работает. Не могли бы вы помочь мне, какие решения доступны для меня в этом случае?
Решения:
# 1 Дублирование правила
location ~* \.(jpg|jpeg|png|gif|ico|css|js|pdf)$ {
expires 7d;
}
location /data/ {
root /mnt/data;
location ~* \.(jpg|jpeg|png|gif|ico|css|js|pdf)$ {
expires 7d;
}
}
# 2 Символическая ссылка
Вы можете создать символическую ссылку: $document_root/data -> /mnt/data
.