反向代理之后 Windows、Android打开正常 但是ios无法打开

源站web是apache,反代web是nginx

原因是如果原始请求已在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即可正常访问。