location / {
allow 203.0.113.0/24;
deny all;
auth_basic "staging";
auth_basic_user_file /etc/nginx/.htpasswd;
}
测试站服务器一周内 wp-login.php 被请求 4 万次,日志里全是不同 IP 的弱口令尝试,CPU 长期跑到 70%,正常调试都卡。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。
原因不复杂,测试站直接暴露在公网,域名还写进了证书透明度日志,扫描器顺着就找过来。没有 Basic Auth,也没有限制后台入口。
这次卡住的地方就在「测试站访问限制」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。改完隔一天再看一次,当场正常不代表能稳住。
测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。
处理上按这个顺序:整站加 Basic Auth,只给团队 IP 段放行;后台登录地址改成随机路径,并开启失败次数限制;关闭测试站的用户注册和用户枚举接口;定期看日志,异常 IP 段直接封。
改完只确认一件事:未带凭据访问一律 401,一周内 wp-login 请求降到个位数。
