Maxim Dounin
February 06, 2018 09:14AM
Hello!

On Tue, Feb 06, 2018 at 04:54:10PM +0300, Валентин Бартенев wrote:

> On Tuesday 06 February 2018 07:55:38 darksmoke wrote:
> > Добрый день
> > Помогите пожалуйста настроить nginx. На одном домене, два урла. Надо что бы
> > по двум урлам отдавалась разная статика.
> >
> > location /v3/ {
> >
> > location ~* \.(xsl|ico|gif|png|svg|js|css|html|ttf|woff|json|xml)$ {
> >
> > index index.html;
> >
> > root /opt/DATA/stat/otp24v3;
> >
> > expires -1;
> >
> > }
> >
> > }
> >
> >
> >
> > location / {
> >
> > location ~* \.(xsl|ico|gif|png|svg|js|css|html|ttf|woff|json|xml)$ {
> >
> > index index.html;
> >
> > access_log off;
> >
> > root /opt/DATA/stat/otp24;
> >
> > expires -1;
> >
> > }
> >
> > }
> >
> > дергаю домен/v3/ получаю 404
> >
> > В логе
> > 018/02/06 14:34:02 [error] 1338189#0: *217105 open() "/opt/nginx/html/v3"
> > failed (2: No such file or directory), cli
> > ent: 10.42.1.53, server: domain.ru, request: "GET /v3 HTTP/1.1", host:
> > "domain.ru"
> >
> > Файлы статики по путям ессть, корень отрабатывает четко, а вот v3 выдает 404
> > и не могу побороть ((
> >
>
> Очевидно, что запрос "/v3" не попадает в location /v3/, а тем более в location
> с регулярным выражением внутри него.
>
> Если вы хотите чтобы попадал запрос без слеша, то нужно убрать слеш и из location.
> А чтобы всё это работало, ещё и root в нём указать правильно.

Стоит при этом иметь в виду, что под "location /v3" (без слэша)
подпадают не только запросы к "/v3", "/v3/", и "/v3/some/file" но
и "/v3-and-some-other-chars". Так как location'ы работают по
строковому префиксу.

Так что я бы рекомендовал в подобных ситуациях писать location со
слэшом на конце, а location без слэша, если он нужен, прописывать
явно, например:

location = /v3 {
return 302 /v3/;
}

location /v3/ {
...
}

В большинстве случаев - такой отдельный "location = /v3"
оказывается не нужен, так как:

- перенаправление с /v3 на /v3/ автоматчески возвращается, если на
диске есть соответствующий каталог;

- такое же перенаправление автоматически возвращается, если в
"location /v3/" написан proxy_pass / fastcgi_pass и т.п.

Подробнее тут:

http://nginx.org/r/location/ru

--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Два location со статикой

darksmoke February 06, 2018 07:55AM

Re: Два location со статикой

Maksim Kulik February 06, 2018 08:02AM

Re: Два location со статикой

darksmoke February 06, 2018 08:42AM

Re: Два location со статикой

Валентин Бартенев February 06, 2018 08:56AM

Re: Два location со статикой

darksmoke February 06, 2018 09:08AM

Re: Два location со статикой

Valentin V. Bartenev February 06, 2018 09:14AM

Re: Два location со статикой

Maxim Dounin February 06, 2018 09:14AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 238
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready