宝塔+frp 配置WordPress 后台访问故障的解决过程

最近在折腾利用宝塔面板结合 frp 实现 WordPress 站点的外网访问,遇到了能通过域名访问首页但进不去后台的问题,经过一番排查终于解决,把过程记录下来,希望能帮到遇到类似问题的朋友。

一、故障现象

通过 frp 配置实现域名访问 WordPress 站点,首页能正常打开,然而尝试进入后台(/wp – admin 路径)时,却遭遇失败,页面无法正常加载。

二、环境与配置背景

(一)环境

采用宝塔面板搭建服务器环境,借助 Docker 部署 WordPress,同时利用 frp 进行内网穿透,实现域名对外网的暴露。frp 配置文件(frpc.toml )关键内容如下:
[[proxies]]
name = “wordpress – new – https”
type = “https”
localIP = “192.168.2.102”
localPort = 1111
customDomains = [“test.cn”]

[proxies.plugin]
type = “https2http”
localAddr = “192.168.2.102:1111”

HTTPS 证书相关的配置

crtPath = “./test.cn.pem”
keyPath = “./test.cn.key”
hostHeaderRewrite = “192.168.2.102”
requestHeaders.set – x – from – where = “frp”

(二)初始推测方向

  1. frp 代理对后台路径(/wp – admin )的转发存在问题,导致请求无法抵达本地 WordPress 服务。
  2. WordPress 站点的 URL 配置和实际访问协议(如 HTTPS )不匹配,引发后台重定向异常。
  3. frp 配置里的 hostHeaderRewrite 参数对请求头的修改,影响了后台访问逻辑。

三、排查与解决步骤

(一)检查 frp 代理的路径转发

  1. 查看 frp 日志:分别在 frp 服务端和客户端查看日志,确认 /wp – admin 请求是否成功到达服务端并转发至本地。在服务端执行 tail -f /var/log/frps.log ,在客户端执行 tail -f /var/log/frpc.log ,观察日志中有无 /wp – admin 相关请求记录 。若日志无记录,意味着 frp 未转发该路径,但初步排查发现并非路径转发问题。
  2. 临时切换代理类型测试:将 frp 代理类型临时改为 http 进行测试,修改 frp 配置如下:
    [[proxies]]
    name = “wordpress – new – http”
    type = “http”
    localIP = “192.168.2.102”
    localPort = 1111
    customDomains = [“test.cn”]
    尝试通过 http://test.cn/wp – admin 访问后台,发现问题依旧,说明并非代理类型导致的核心问题。

(二)校验 WordPress 站点 URL 配置

  1. 修改 wp – config.php 文件:wp – config.php 文件一般位于 WordPress 安装目录的根文件夹(因是宝塔 Docker 安装,通过宝塔面板的文件管理器,结合搜索功能找到该文件,路径通常为 /www/wwwroot/你的域名/wp – config.php )。在文件中添加以下代码,强制 WordPress 使用 HTTPS 作为站点 URL:
    define(‘WP_SITEURL’, ‘https://test.cn’);
    define(‘WP_HOME’, ‘https://test.cn’);
    添加后,后台访问问题仍未解决,说明不是站点 URL 配置的直接问题。

(三)聚焦 hostHeaderRewrite 配置

hostHeaderRewrite = “192.168.2.102” 的作用是修改 HTTP/HTTPS 请求头中的 Host 字段,把用户访问时的 Host(如 test.cn )替换为 192.168.2.102 再转发给内网 WordPress 服务 。推测该配置可能使本地 WordPress 服务接收的 Host 头异常,影响后台访问逻辑。于是注释掉该配置:

hostHeaderRewrite = "192.168.2.102"

保存 frp 配置并重启 frp 服务后,再次尝试访问 WordPress 后台,发现后台可正常加载,故障解决!

四、总结

此次故障的关键原因是 hostHeaderRewrite 配置修改了请求头的 Host 字段,导致本地 WordPress 服务处理后台请求时出现异常。注释该配置后,请求头能正常传递,后台访问恢复正常。

在使用 frp 等内网穿透工具结合宝塔、WordPress 进行部署时,请求头相关配置需格外留意,它们可能对站点的复杂路径(如后台、插件路径等)访问产生微妙影响。遇到类似问题,可从请求头修改、站点 URL 协议匹配、代理路径转发等方面逐步排查,找到问题根源。