Судя по:
location = /wp-login.php {
limit_req zone=one burst=1 nodelay;
include fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
limit_req_status 444;
}
в приведённом конфиге, вы уже знаете, как правильно решать эту проблему (или это был ваш предшественник?). Использование
limit_req - правильный путь, но, видимо, он используется не для всех важных ресурсов. Проще всего применить limit_req для всех обращений к php, выставив достаточно большой burst:
location ~ \.php$ {
limit_req one burst=30 nodelay;
...
}
При этом rate в limit_req_zone можно бы и опустить, скажем, до 5r/m, т.к. редкий настоящий пользователь способен просмотреть более 30 страниц подряд, тратя при этом менее 15 секунд на страницу. Но при этом важно убедиться, что во всех использующих эту зону limit_req'ах установлен разумный burst, а не 1.
Подробнее про limit_req можно прочитать в
документации.
(Отмечу в скобках, что в вашем конфиге отсутствует "\" перед "." в "location ~ .php$", в результате в location могут попасть не относящиеся к нему запросы, т.к. просто точка в регулярном выражении - это любой символ.)