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

Nginx+Docker部署WordPress负载均衡HTTPS页面样式不加载问题

问题原因

你遇到的HTTPS站点样式丢失是典型的WordPress混合内容加载错误:

  • Nginx作为反向代理处理了HTTPS请求,但转发给后端WordPress容器时使用的是HTTP协议
  • WordPress未感知到前端实际是HTTPS访问,输出的静态资源(CSS、JS、图片)链接全部为HTTP开头
  • 浏览器的安全策略会拦截HTTPS页面下的HTTP资源请求,导致样式无法正常渲染

具体解决方案

分三个步骤操作即可修复:

第一步:修改Nginx配置

更新你的nginx.conf的location /块,添加转发协议和端口相关的请求头,同时修正IP获取参数:

location / {
    proxy_pass         http://all;
    proxy_set_header Host            $host;
    # 修正IP获取参数,未启用proxy protocol时使用$remote_addr
    proxy_set_header X-Real-IP       $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    # 新增:告知WordPress前端访问的协议和端口
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Port  $server_port;
}

第二步:修改WordPress配置

编辑WordPress根目录下的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'] = 443;
}
// 固定站点地址为HTTPS,避免数据库中存储的HTTP地址影响
define( 'WP_HOME', 'https://wordpress-docker.test' );
define( 'WP_SITEURL', 'https://wordpress-docker.test' );

如果站点已发布过内容,数据库中仍残留旧的HTTP资源链接,可以进入WordPress后台使用搜索替换工具批量更新,避免单篇内容仍出现混合内容错误。

第三步:重启服务生效

执行以下命令重启相关容器:

docker compose restart nginx wordpress-1 wordpress-2

重启完成后清空浏览器缓存和WordPress站点缓存,再次访问HTTPS站点即可正常加载样式。


内容的提问来源于stack exchange,提问作者Wellington dos Santos Ramos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 23:36:03