nginx: 403 запрещено для определенного текстового значения для Location - PullRequest
0 голосов
/ 27 мая 2018

У меня странная проблема с конфигурацией nginx.

Все работает.Но если я изменю значение для директивы location (при этом все будет абсолютно идентично), она потерпит неудачу.

Так работает следующая конфигурация:

location ~ ^/v1/works/(.*)$ {
  ...
  ...
}

Но не это:

location ~ ^/v1/doesnotwork/(.*)$ {
  ...
  ...
}

Я получаю этот журнал ошибок:

access forbidden by rule, client: 100.97.0.0, server: my-host.com, request: "GET /v1/doesnotwork HTTP/1.1", host: "my-host.com"

Кажется, что какое-то правило разрешает определенное слово («работает» в этом примере), но запрещает использование другого слова («не работает» в этом примере) для определения местоположения.директива.

В чем может быть причина?Какая часть конфигурации nginx в целом или конфигурации proxy_pass в частности может позволить иметь такое правило?

1 Ответ

0 голосов
/ 28 мая 2018

Я решил проблему.

Причиной было многократное появление блока сервера для одного и того же домена.

Первоначальный автор сначала пытался использовать некоторые сервисы из тестовой среды, а некоторые - из prod.После тестирования окончательно исправил серверы.Но он забыл объединить 2 блока в один.

Повторное вхождение домена сервера, а также повторное вхождение некоторых директив местоположения вызывало ошибку.

Вкл.объединяя все эти местоположения в единый блок сервера, проблема была решена.

...