1. 核心防御原理
我们在 Nginx 反向代理层(也就是你服务器的最外层大门)建立了一套“白名单准入机制”。
- 逻辑: 只有来自你授权的 IP 地址,Nginx 才会将请求转发给 Docker 里的 WordPress 容器;其他所有 IP 访问敏感路径时,直接由 Nginx 拦截并返回
403 Forbidden。 - 优势: 攻击者无法通过暴力破解尝试密码,因为他们连登录页面都打不开,同时也减轻了 WordPress 插件和数据库的运算压力。
2. 配置结构梳理
你在 /etc/nginx/sites-available/wordpress 中实现的规则分为三个层次:
| 访问路径 | 规则策略 | 目的 |
/ (全站首页/文章) | 全员开放 | 保证读者能正常访问你的网站内容。 |
/wp-admin/admin-ajax.php | 全员开放 | 关键点:保证前台功能的动态加载(如评论、翻页)不失效。 |
wp-admin & wp-login.php | IP 白名单 | 只有你的 IP 能看到后台登录框,彻底封死暴力破解入口。 |
3. 故障排除回顾(解决冲突)
在配置过程中,我们遇到了 conflicting server name 警告,这是新手常踩的坑:
- 问题:
default和wordpress两个配置文件同时声明了对yaoyuan.me的所有权。 - 解决: 通过删除
/etc/nginx/sites-enabled/default软链接,确保了 Nginx 路径唯一化,让新规则真正生效。
4. 日常维护手册
- 查看被拦下的倒霉蛋:使用 tail -f /var/log/nginx/error.log | grep “forbidden”。
- 自己被锁在外面了:
- SSH 登录服务器。
- 执行
curl ifconfig.me获取当前新 IP。 - 修改
allow后的 IP,运行nginx -s reload。
- 增加办公环境 IP:在 allow 下方直接增加一行 allow x.x.x.x; 即可,记得保留最后一行 deny all;。
发表回复