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

Nginx反向代理+WordPress多VPS部署遭遇Too Many Redirects问题求助

Nginx反向代理+WordPress多VPS部署遭遇Too Many Redirects问题求助

Hi Michele,碰到这种重定向循环的问题确实头疼,不过结合你的部署架构——Proxmox管理多VPS跑独立WordPress、Nginx反向代理做HTTPS统一入口、Fortinet防火墙做端口转发——大概率是反向代理和WordPress之间的协议识别或者重定向规则冲突导致的,我给你梳理几个排查方向和解决办法:

先对齐你的问题现象

  • ✅ 后端VPS本地HTTP访问WordPress正常
  • ✅ 反向代理服务器用curl访问后端VPS站点正常
  • ✅ 本地网络直接访问VPS IP正常
  • ❌ 外部通过域名访问时触发Too Many Redirects错误

核心排查与解决步骤

1. 让WordPress正确识别反向代理的HTTPS请求

这是最常见的原因:反向代理已经把HTTPS请求转成HTTP发给后端WordPress了,但WordPress不知道这是来自外部的HTTPS请求,生成的链接还是HTTP,反向代理又把HTTP请求重定向回HTTPS,循环就这么来的。

解决办法:

  • 登录后端WordPress所在VPS,编辑wp-config.php文件,添加以下代码:
// 强制后台使用HTTPS
define('FORCE_SSL_ADMIN', true);
// 识别来自反向代理的HTTPS请求
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
    $_SERVER['HTTPS'] = 'on';
    $_SERVER['SERVER_PORT'] = 443;
}
  • 同时检查反向代理的Nginx配置,确保转发请求时带上必要的头部,在对应域名的server块里添加:
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://你的后端VPSIP;

2. 检查重定向规则是否双向冲突

如果反向代理已经配置了80转443的强制HTTPS重定向,而后端WordPress也开启了强制HTTPS,就会出现双向重定向循环。

  • 先看反向代理的80端口配置,是否有这样的规则:
server {
    listen 80;
    server_name your-domain.com;
    # 把所有HTTP请求重定向到HTTPS
    return 301 https://$host$request_uri;
}
  • 如果反向代理已经做了这个,那可以暂时关闭WordPress后台的“强制HTTPS”选项(或者通过wp-config.php的FORCE_SSL_ADMIN只保留后台HTTPS),避免两边都强制重定向。

3. 检查WordPress的站点URL设置

通过VPS本地访问WordPress后台,进入设置->常规,确认:

  • WordPress地址(URL) 和 站点地址(URL) 都是 https://your-domain.com
  • 不要设置成IP地址或者HTTP协议,否则生成的链接会和反向代理的HTTPS要求冲突

4. 清除浏览器缓存试试

有时候浏览器缓存了旧的重定向记录,即使你修复了配置,还是会触发循环。试试用隐私模式访问,或者清除浏览器的缓存和Cookie,再测试。

测试验证

完成上面的配置后,先在反向代理服务器上用curl -I https://your-domain.com检查响应头,看是否返回200或者正确的单次重定向;再用浏览器正常访问测试。

备注:内容来源于stack exchange,提问作者Michele

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 11:24:50