问题
使用Nginx反向代理了两个应用程序,一个http的应用A,一个https的应用B,使用相同域名,不同端口。
一开始访问应用A没有问题,然后访问应用B之后,再次访问应用A出现了**307
**强制跳转,将应用A重定向到了https的地址,并提示了ERR_SSL_PROTOCOL_ERROR错误。
导致该域名下所有http的访问都重定向到了https
原因
应用B的响应头里面有一个Strict-Transport-Security
字段,它用来通知浏览器应该只通过 HTTPS 访问该站点,并且以后使用 HTTP 访问该站点的所有尝试都应自动重定向到 HTTPS。
解决方法
- 让应用B不返回这个响应头
- 使用nginx响应头改写,去掉这个字段
参考
https://charlesfeng.cn/status-code-307-and-hsts/