nginx отрицает, что все работает не так, как ожидалось

#nginx #url-rewriting #nginx-config #nginx-location

Вопрос:

У меня есть это в моем файле nginx conf

 location ~ ^/admin/.*.php$ {
    include snippets/admin.conf;
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
 

Это содержимое фрагментов/admin.conf

 allow my IP/32;
deny  all;
 

Я могу получить доступ к URL /admin с помощью своего IP-адреса, и когда я меняю свой IP-адрес, он работает так, как ожидалось, он возвращает 403 Запрещенных.

Но я вижу это в своем access.log

 198.46.190.174 - - [06/Oct/2021:10:41:47  0000] "POST /admin/ HTTP/1.1" 200 10002 "-" 
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
109.120.213.70 - - [06/Oct/2021:10:41:47  0000] "POST /admin/ HTTP/1.1" 200 10008 "-" 
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
 

Кто-то пытается взломать сайт. Запросы поступают с тысяч разных IP-адресов, и nginx возвращает код состояния 200

Я даже переименовал каталог администратора в случайные символы, и nginx по-прежнему возвращает код состояния 200, как вы видите в access.log

Почему это так? Пожалуйста, кто-нибудь, помогите

Комментарии:

1. Блоки расположения регулярных выражений оцениваются по порядку, поэтому вам нужно просмотреть весь server блок, чтобы понять, как location ~ ^/admin/.*.php$ он оценивается. Кроме того, POST /admin/ изначально не обрабатывается location ~ ^/admin/.*.php$ , поэтому, опять же, вам нужно просмотреть весь server блок, чтобы понять, как оценивается этот URI.