本文最后更新于300 天前,其中的信息可能已经过时,如有错误请评论留言
WordPress 反向代理部署踩坑记录
日期:2025-10-22
环境:阿里云 ECS + 1Panel + OpenResty + MySQL(容器) + WordPress(容器)
目标:仅通过域名boki.shifengzhi.top访问,屏蔽 IP+端口,统一前后台链接
最终效果
| 项目 | 结果 |
|---|---|
| 博客首页 | http://boki.shifengzhi.top ✅ |
| 后台登录 | http://boki.shifengzhi.top/wp-admin ✅ |
| IP+端口 | 无法访问(8080 已关) ✅ |
| 首页菜单 | 不再跳 www.shifengzhi.top 或 IP ✅ |
问题清单(复制即用)
1 域名打不开
原因:阿里云安全组未放行 80 端口
解决:
- 登录阿里云控制台 → 安全组 → 入方向
- 添加规则:
TCP 80 0.0.0.0/0 允许
2 访问域名后自动跳转到 :8080
原因:WordPress 地址仍带端口
解决:
-
进入 MySQL 容器终端
docker exec -it mysql-word_cjfsec mysql -u root -p -
执行SQL
UPDATE wp_options SET option_value='http://boki.shifengzhi.top' WHERE option_name IN ('siteurl','home'); -
后台输入账号密码无反应
原因:登录表单跨域(siteurl 是 IP,浏览器地址是域名)
解决:同问题 2,确保两个地址都是域名即可 -
点击“首页”菜单跳转到 www.shifengzhi.top
- 原因:菜单项写死旧 URL
- 解决:
3.后台 → 外观 → 菜单
4.找到“首页”项,展开 ▼
5.把 URL 改为 http://boki.shifengzhi.top
6.保存菜单
-
IP:8080 返回 404
原因:已关闭 8080 外网端口
解决:无需处理,这是预期安全行为
| 序号 | 操作 | 说明 |
|---|---|---|
| ① | 域名解析 | boki.shifengzhi.top → 服务器公网 IP |
| ② | 1Panel 新建网站 | 类型选“反向代理”,监听 80,目标 http://127.0.0.1:8080 |
| ③ | 放行 80 端口 | 阿里云安全组入方向 TCP 80 0.0.0.0/0 |
| ④ | 关闭 8080 外网 | 安全组删除或限制 8080 仅 127.0.0.1 |
| ⑤ | 数据库改地址 | 容器内执行上方 SQL,统一为域名 |
| ⑥ | 修正菜单链接 | 后台 → 外观 → 菜单 → 首页 URL 改域名 |
| ⑦ | 清除缓存 | 插件缓存 + 浏览器硬刷新 |
# 本地验证反向代理
curl -H "Host: boki.shifengzhi.top" -I http://127.0.0.1
# 查看容器内地址
docker exec -it mysql-word_cjfsec mysql -u root -p -e \
"SELECT option_name,option_value FROM wp_options WHERE option_name IN ('siteurl','home');"