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