昨天不是给博客套上了一个日本节点的反向代理么,昨晚用CHROME测试正常,SAFARI不正常,我还以为是缓存的问题
今天发现IOS的默认浏览器也出现了同样的报错“can’t parse response”,觉得可能不是某个浏览器缓存问题了,就在网上到处搜索了一下,最终找到了解决办法(https://trac.nginx.org/nginx/ticket/915)这里记录一下。
问题原因:
When proxying an HTTP/2-enabled webserver with nginx, nginx fetches resources using HTTP/1.1, which the backend server tries to upgrade to HTTP/2 by sending the “Upgrade: h2” header.
In the default configuration, this header is then forwarded to the client, which is incorrect.
In the case of nghttp, this is interpreted as an error:
翻译一下:
当使用 nginx 代理一个支持 HTTP/2 的 web 服务器时,nginx 使用 HTTP/1.1 获取资源,而后端服务器尝试通过发送 “Upgrade: h2” 头部来升级到 HTTP/2。 在默认配置中,这个头部随后被转发给客户端,这是不正确的。 在 nghttp 的情况下,这被解释为一个错误。
解决方法:
在反向代理配置文件中,添加如下代码
proxy_hide_header Upgrade;