wordpress 后台登录一直是被锁定状态

情景

一直提示过多的错误登录,即使是自己没有输错过密码,即使是过了限制时间再次登录也会被重置限制时间等等,反正就是一直提示尝试次数过多而被限制。

原因

由于安装了 Limit Login Attempts Reloaded 插件,该插件会限制同一个ip错误登录的次数,但是又由于开启了nginx的反向代理(并且还是多层代理),导致不管是谁登录后台,都会被认为是同一个ip(nginx服务器的ip)登录的。所以若别人尝试登录达到限制,其他客户端的任何登录都会被限制。

临时解决

进入wordpress后台服务器,删除该插件的目录

root@a5665d258313:/var/www/html/wp-content/plugins# pwd
/var/www/html/wp-content/plugins
root@a5665d258313:/var/www/html/wp-content/plugins# ls
xxx xxx xxxx  limit-login-attempts-reloaded	xxx xxx xxx
root@a5665d258313:/var/www/html/wp-content/plugins# rm -rf limit-login-attempts-reloaded

永久解决

这种反向代理的场景很常见,那该插件肯定也是有解决的。

配置nginx

在代理的请求头中加上真实IP的信息

插件设置

进入该插件的设置页面最下面就有,在 Trusted IP Origins 的头部加上 HTTP_X_REAL_IP

为什么默认的 REMOTE_ADDR 获取不到真实IP

因为我使用了多层代理,导致其在nginx内部进行了多次重定向,remote_addr 记录的是最后一次跳转的客户端的地址,即仍然是nginx的ip

这里好像理解的不对,我找找资料先

Leave a Comment