【问题标题】:IPhone / iPad will not load website or subdomain hosting behind a AWL ELBiPhone / iPad 不会在 AWL ELB 后面加载网站或子域托管
【发布时间】:2020-08-23 04:03:08
【问题描述】:
我遇到了一个难题,即托管在 AWS 上 ELB 后面的 EC2 实例上的网站无法在任何移动 I 设备上加载。该网站在桌面上的所有浏览器上都能正常加载。
我的 EC2 正在使用 Apache 运行 Centos。
没有错误信息,Safari 只是显示一个空白页面,地址栏会清除。 Chrome 显示消息“ERR_FAILED”。
【问题讨论】:
标签:
iphone
amazon-web-services
ipad
dns
amazon-elb
【解决方案1】:
我在这个问题上苦苦挣扎了几天,在网上找不到太多,所以我想分享我的解决方案。
我发现正在运行
curl "https://example.com"
返回
HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)
经过一番研究,我发现
Application Load Balancer 提供对 HTTP/2 的原生支持
HTTPS 侦听器。您最多可以使用一个并行发送 128 个请求
HTTP/2 连接。负载均衡器将这些转换为单独的
HTTP/1.1 请求并将它们分发给健康的目标
目标群体。因为 HTTP/2 更多地使用前端连接
有效地,您可能会注意到客户端之间的连接较少,并且
负载均衡器。您不能使用 HTTP/2 的服务器推送功能。 [source]
解决方案:编辑 http.conf 以禁用 HTTP/2
改变
Protocols h2 h2c http/1.1
到
Protocols http/1.1