Re: Не корректно работает root в nginx
Maxim Dounin
mdounin на mdounin.ru
Пт Июл 31 12:09:56 UTC 2020
Hello!
On Fri, Jul 31, 2020 at 02:14:17PM +0300, MihaKot wrote:
> есть конфигурация nginx
>
> server {
[...]
> root /var/www/_test.domain/client/;
[...]
> location /html {
[...]
> location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
> expires 14d;
> }
[...]
> При такой конфигурации скрипты работают, при запросе
> client.test.domain/html/css/style.css выдает 404 Not found
>
> в логе nginx видно что файл ищет
> "/var/www/_test.domain/client/html/css/style.css"
Всё правильно, какой root указан - такой и используется.
Важно для понимания: для обработки запроса используется строго
один location, и если вы себе сделали location "для статики", в
который попадает запрос, то действует тот root, который задан в
этом location'е.
Если хочется, чтобы работала конфигурация из "location /html", то
есть два пути:
1. Запретить проверять регулярные выражения после "location
/html", добавив модификатор "^~".
2. Изолировать имеющиеся регулярные выражения там, где они должны
применяться, например - внутри "location /".
[...]
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru