Talvez você deva seguir o caminho mais fácil e apenas definir um bloco para o seu URL de login e desativar o cache manualmente. É assim que faço para o Wordpress.
Eu tenho esse bloco limitador de taxa fora da definição do servidor (eu tenho um site de tráfego de log, então 1 login por segundo é mais que suficiente).
limit_req_zone $binary_remote_addr zone=login:1m rate=1r/s;
Isso está dentro do meu servidor
# Rate limit wp-login.php to prevent brute force attacks
location = /wp-login.php {
# Next line applies the rate limit defined above
limit_req zone=login burst=3;
fastcgi_keep_conn on;
fastcgi_intercept_errors on;
fastcgi_pass php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# No caching
more_clear_headers "Cache-Control";
add_header Cache-Control "private, max-age=0, no-cache, no-store";
more_clear_headers "Expires";
}
Eu tenho mais no meu tutorial Wordpress / Nginx, aqui .
Atualizar
Isto é o que eu tenho na minha configuração Nginx para Wordpress
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wordpress_logged_in") {
set $skip_cache 1;
}
Se você leu o tutorial que eu criei no link acima, eu tenho uma configuração Nginx razoavelmente eficaz para o Wordpress que você provavelmente pode pegar como está ou copiar e colar partes de.