You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署的WordPress使用反向代理时无法安装插件/更新问题求助

问题原因

  • 反向代理未向WordPress容器传递正确的请求头(X-Forwarded-Proto、X-Forwarded-Host、X-Forwarded-Port等),导致WordPress无法识别站点实际的访问协议、域名和端口,内部HTTP请求校验逻辑异常,无法和WordPress.org建立正常HTTPS连接。
  • WordPress默认不信任反向代理传递的转发头,不会根据头信息调整自身运行配置,进一步导致对外请求的校验失败。

解决方法

步骤1:调整反向代理配置,传递完整请求头

Nginx反向代理配置

在对应站点的location配置块中添加以下参数:

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;

配置完成后执行nginx -s reload重载配置。

Apache反向代理配置

在对应虚拟主机配置中添加以下参数:

ProxyPreserveHost On
RequestHeader set X-Forwarded-Proto "https" env=HTTPS
RequestHeader set X-Forwarded-Port "%{SERVER_PORT}s"
RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}s"

配置完成后执行对应Apache重载命令生效。

步骤2:配置WordPress信任反向代理头

你可以任选以下一种方式配置:

方式1:修改wp-config.php配置文件

编辑宿主机挂载路径下的/sites/wp/wp-config.php文件,在/* That's all, stop editing! Happy publishing. */代码行前添加以下内容:

// 适配反向代理HTTPS配置
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
    $_SERVER['HTTPS'] = 'on';
    $_SERVER['SERVER_PORT'] = $_SERVER['HTTP_X_FORWARDED_PORT'];
}
// 固定站点访问地址,可直接替换为你的实际访问域名
define('WP_HOME', (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST']);
define('WP_SITEURL', WP_HOME);

保存后直接生效,无需重启容器。

方式2:修改Docker Compose配置

在你原有docker-compose.yml的wordpress.services.environment字段下新增以下配置:

WORDPRESS_CONFIG_EXTRA: |
  define('WP_HOME', 'https://替换为你的实际访问域名');
  define('WP_SITEURL', 'https://替换为你的实际访问域名');
  if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
    $_SERVER['HTTPS'] = 'on';
    $_SERVER['SERVER_PORT'] = 443;
  }

修改完成后执行docker compose up -d重启容器生效。

步骤3:验证功能

清理浏览器缓存和WordPress站点缓存后,重新通过反向代理地址访问后台,尝试安装插件/主题即可恢复正常。
如果仍然报错,可以进入容器执行网络连通性测试:docker exec -it <你的WordPress容器名> curl -v https://api.wordpress.org,如果请求不通,可在docker-compose.yml的wordpress服务下新增dns: 223.5.5.5配置,修复容器DNS解析问题。

内容的提问来源于stack exchange,提问作者stocton12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 21:06:09