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