网站在ios、和macos使用Safari上无法访问的问题解决
使用了nginx反向代理的网站,在IOS和mac os上使用Safari浏览器无法打开的问题
在近期有一位客户遇到了网站在苹果设备,无论是iPhone、ipad还是mac上面使用Safari浏览器打开网站都显示“Safari打不开该网页,因为已经丢失网络连接”。
但在windows和Android设备上打开网站则是正常可以打开的,针对此问题,我们进行了排查,是发现客户的站点使用了一台服务器nginx反向代理内网服务器对外访问,而网站本身的服务器则是apache的。
原因是如果原始请求已在http/2中,iOS 10+不支持在响应中包含Upgrade标头。解决方案是隐藏Apache服务器提供的Upgrade标头,因为Nginx已升级为Apache请求(Nginx发送http/1.1请求,Apache已在http/2中升级)。
当请求已经在 http2 中时,iOS 无法处理“协议升级请求”。两台服务器配置在 apacheProtocols h2 http/1.1和 nginx 中都启用了 http2。
因此解决的方式是,在apahce源服务器中找到 apahce配置文件 搜索 Protocols h2 http/1.1 并且去除,去除之后重启apahce即可正常访问了。
此问题较为小众,在文此记录解决方法。
您好!请登录