本文将简要回顾这一问题的发现、分析过程以及最终的解决方案,希望能为面临相似问题的站长提供帮助
问题是怎么被发现的?
准备配置验证码时发现无法正常使用,具体表现为即使验证通过,网页也不显示可以登入
啪一下(一个小时之后才去测的,去Itdog测了一下
发现了一个301重定向,
HTTP/1.1 301 Moved Permanently
Server: openresty
Date: Sat, 08 Jun 2024 13:53:12 GMT
Content-Type: text/html
Content-Length: 166
Connection: keep-alive
Location: https://example.com
Strict-Transport-Security: max-age=31536000
HTTP/1.1 200 OK
Server: openresty
Date: Sat, 08 Jun 2024 13:53:12 GMT
Content-Type: text/html
Content-Length: 4142
Connection: keep-alive
Set-Cookie: p_uv_id=e906b04df4fac037074879503197454a; path=/; expires=Sat, 08-Jun-24 16:00:00 GMT; HttpOnly
Set-Cookie: MQtR8HiErSCi7jYtRnpSJVtpzfM0yBF3=9SQufJYiyWgGN9EZz1hIwu3Ye04IAqIendwGdCUx; expires=Tue, 11-Jun-2024 13:53:12 GMT; Max-Age=259200; path=/; domain=example.com; httponly
Content-Encoding: br
X-Cache: MISS
Strict-Transport-Security: max-age=31536000
Cache-Control: no-cache
蒙圈了,本身除了宝塔正常配置的http强制跳转https,还能有啥能重定向,而且访问的也不是http啊
我一猜就是发了两遍重定向,
只要把面板的http强制跳转https关掉就好了
额
没错,没有了
但是还是要剖析一下问题的根源
1. 后端应用服务器配置:论坛后端服务器设置了自动将所有HTTP请求重定向至HTTPS。然而,由于前端代理也进行了重定向设置(这篇文章中具体可以体现为面板设置了http强制跳转https),两者叠加造成了重定向循环。
2. 反向代理配置:反向代理配置中对所有请求进行了默认的HTTPS重定向,而实际上这部分逻辑应当只在直接访问论坛域名时生效,不应影响通过代理传递的请求。理解为原本意图可能是想让直接通过浏览器访问论坛域名(比如https://example.com)的用户自动从HTTP跳转到HTTPS但是它不仅对直接访问论坛域名的HTTP请求执行了HTTPS重定向,还将这一规则应用到通过反向代理(即用户实际访问的是服务器,然后再将请求转发给后端的应用服务器)的所有请求上。即便是已经通过代理且理论上应该直接内部处理的请求,也被重定向到HTTPS
好了没了
感谢观看
就这么简单的问题困了我6小时
还有为什么在写文章的时候点提交会出403让我登入才能提交,再登入还提示我又登入了,cdn毁了这个世界😡
发表 :4月前