Nginx запрещает все, поскольку блок местоположения не работает должным образом

У меня есть настройка WordPress блога с Nginx. Я продолжаю видеть это

80.82.64.220 - - [10/Nov/2016:08:21:48 +0000] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"

Это один запрос в секунду. Поэтому я попытался запретить доступ к xmlrpc.php через файл conf nginx.

 location /xmlrpc.php {
    deny all;
    access_log off;
 }

Я хватаю файл доступа и вижу, что к нему все еще обращаются. Понятия не имею почему. Я пытаюсь свернуться со своей машины разработчика со случайными параметрами, и я получаю файл XML. Я не знаю, почему я получаю XML-файл.

Я заметил, что все запросы с одного сервера. Так что я думаю, давайте просто заблокировать IP, поэтому я делаю

sudo ufw deny from 80.82.64.220

Я проверяю статус, и он показывает, что правило добавлено. Я хватаю файл доступа и все еще вижу, что к файлу обращаются.

Все изменения в файрволе и конфигурационном файле nginx, включая файл журнала доступа, находятся на моем реальном сервере. Этот сервер находится за обратным прокси-сервером nginx. Журнал доступа обратного прокси-сервера не имеет этого журнала доступа, поэтому я предполагаю, что к главному серверу обращаются напрямую.

Но как получить доступ к файлу?

1 ответ

Решение

Блок местоположения не работает, потому что он не обрабатывает /xmlrpc.php запрос. Смотрите этот документ для деталей.

Использовать ^~ модификатор или = Конструкция для повышения приоритета блока местоположения (см. этот документ для деталей):

location = /xmlrpc.php { ... }
Другие вопросы по тегам