博主头像
明关のBLOG

分享交流!

关于nginx反向代理后Safari浏览器无法访问的问题

环境

LANMP环境,使用nginx代理apache
nginx/1.20.1
Apache/2.4.62

问题

苹果端访问博客请求一直timeout,继而发现safari无法访问网站,但是chrome和其他的浏览器都没有任何问题。

前言

我也不知道为啥,我刚开始找这个问题的时候,咋都搜不到解决方法,各个搜索引擎都找不到,可能是这个问题比较诡异,而且完全不知道什么原因,所以搜索的内容也有问题,最后跑到nginx官网上才找到的。
nginx官方论坛

分析

论坛中的解释就是 “Upgrade”标头不应通过 h2 代理,当使用 nginx 代理启用 HTTP/2 的 Web 服务器时,nginx 使用 HTTP/1.1 获取资源,后端服务器尝试通过发送“Upgrade: h2”标头将其升级到 HTTP/2。
而且在nginx/1.9.12版本就已经有这个问题了,最早发现这个问题是2016年发现的,但是到了今天,nginx这个问题依然存在,总之这个问题并不是因为反向代理导致的,而是nginx本身的问题。

解决方法

就如论坛中的一样可以在反向代理的配置中添加

proxy_hide_header Upgrade;

同样的根据论坛中解释,是因为h2协议代理的问题,但是我的被代理的apache,没有开h2协议,所以也可以使用,下面这个配置nginx,直接指定

proxy_http_version 1.1;
关于nginx反向代理后Safari浏览器无法访问的问题
https://blog.reeskysui.xyz/archives/32/
本文作者 明关
发布时间 2025-04-25
许可协议 CC BY-NC-SA 4.0
发表新评论
×
NOTICE 系统公告
📢 欢迎访问本站!
✨ 功能上新:
1️⃣OSS + CDN📦全面接管文件存储与分发
2️⃣域名焕新🌐导航页
3️⃣安全升级🔐邮箱验证账号注册功能
4️⃣网站冬装❄️辞旧迎新(过年有彩蛋)
5️⃣PKM📚私有知识管理库上线(需要有账号访问)
6️⃣公共插件开发完成✅已上线
7️⃣typecho核心更新💕1.3.0版本
🎊感谢大家的支持,愿新的一年,大家浏览愉快,生活美好!