Nginx 导致过多重定向

问题描述 投票:0回答:1

我创建了一个 GCP 云实例来托管 RockerChat。我正在使用 Nginx 和 Cloudflare 通过我的域访问它。但它显示了太多重定向错误。

ERR_TOO_MANY_REDIRECTS

我是这方面的新手,非常感谢任何帮助!

使用 ip_address:port 访问是可以的,但使用域会导致太多重定向错误。以下是我的 Nginx 配置:

活动{

worker_connections 1024;

}

http {

client_max_body_size 1000m;

服务器{

listen 80;

server_name chat.miahomebuyerservice.com.;

return 301 https://$host$request_uri;

}

服务器{

听443 ssl;

服务器名称 chat.miahomebuyerservice.com;

http2 开启;

ssl_certificate /etc/nginx/certs/chat-cert.pem;

ssl_certificate_key /etc/nginx/certs/chat-key.pem;

add_header 严格传输安全“max-age=31536000; includeSubDomains; 预加载”;

地点/{

  proxy_set_header   X-Real-IP $remote_addr;

  proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;

  proxy_set_header   Host $host;

  proxy_pass         http://34.125.124.2:8890/;

  proxy_http_version 1.1;

  proxy_set_header   Upgrade $http_upgrade;

  proxy_set_header   Connection "upgrade";

}

非常感谢任何帮助!

nginx google-cloud-platform cloudflare
1个回答
0
投票

此问题可能由多种原因引起;我怀疑是否能找到解决方案,但这是清单:

  • 一般浏览器接受 3-4 跳重定向。不仅如此,它还会在客户端提示太多重定向错误。
  • 如果 cloudflare 导致重定向循环,请尝试暂时切换到 cloudflare 中的开发模式以缩小根本原因范围。
  • 尝试禁用自动 HTTPS 重写和 HTTP 严格传输安全。
  • 可选地,如果您在后端和 gcp 实例之间使用负载均衡器,该实例会重新加密 http 流量。尝试禁用它并直接测试 url。
  • 从 cloudflare 重定向 https,或者让 ngnix 重写规则,但将两者放在一起会导致此错误。如果您的应用程序具有 SSL 功能,那么可能会将 http 请求转换为 https 并导致环回。如果您的后端应用程序已经使用 https 进行了硬编码,请保持简单,不要使用重定向 301。
  • 在浏览器上启用开发人员模式,并检查您的 url 源代码中是否有任何嵌入链接正在创建环回。我确信您的后端不是造成这种情况的原因,只是要仔细检查。
  • 尝试测试您的 cloudflare 加密从完全严格到灵活、完全。
  • 由于您是 cloudflare 的新手,请注意完全严格的 SSL,重新加密来自源服务器(在您的情况下为 ngnix 服务器)的请求,并且可能需要您配置 CA 证书。 https://developers.cloudflare.com/ssl/origin-configuration/origin-ca/
  • 按照此链接执行检查表https://developers.cloudflare.com/ssl/troubleshooting/too-many-redirects/
  • 我用 https://www.redirect-checker.org/ 测试了你的网址。这肯定是由于 https 和 http-https 循环上的 cloudflare 参数配置错误引起的。

希望以上几点能够解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.