nginx

终于解决:Safari 浏览器无法打开页面 错误是:“cannot parse response” (NSURLErrorDomain: -1017)

应用场景:nginx做proxy_pass反向代理时候,chrome浏览器可以访问,safari浏览器不能访问,出现如下错误:

Safari 浏览器无法打开页面“https: /xxx.com/”。错误是:“cannot parse response” (NSURLErrorDomain: -1017)

终于解决:Safari 浏览器无法打开页面 错误是:“cannot parse response" (NSURLErrorDomain: -1017)
cannot parse response” (NSURLErrorDomain: -1017)

先看下网站的头信息:

curl -I https://www.moneyslow.com
HTTP/2 200 
last-modified: Fri, 11 Feb 2022 08:27:36 GMT
etag: "25c1c-5d7b9d6ca56bf"
accept-ranges: bytes
content-length: 154652
vary: Accept-Encoding
content-type: text/html
date: Mon, 21 Feb 2022 03:36:57 GMT
server: Apache

再次验证,通过浏览器插件 http/2 and SPDY indicator 我们发现网站通过http2协议进行访问,于是查到相关资料:

https://trac.nginx.org/nginx/ticket/915

大概意思是header中的Upgrade不能通过http2来传递,所以要忽略Upgrade的传输。增加参数:

proxy_hide_header      Upgrade;
问题解决。