AWS S3托管静态网站在移动浏览器无法加载问题排查求助
排查步骤与解决建议
一、网络与端口连通性排查
- 直接在移动端浏览器访问
http://<EC2公网IP>:<端口>/<静态文件路径>(替换成实际的IP、端口和文件路径),验证是否能打开静态文件。如果连IP都访问失败,优先检查网络层面的限制。 - 检查EC2安全组入站规则:确认是否允许移动端所在的IP段访问静态文件对应的端口(如80、443)。如果之前仅添加了桌面端的公网IP,移动端IP不在规则内就会被拦截。
- 检查VPC网络ACL:确保入站规则允许目标端口的请求,出站规则允许EC2向移动端IP段返回流量。
二、静态文件配置与S3关联排查
- 对比GitHub部署YAML的新旧版本:确认是否修改了静态文件的存储路径、域名引用或S3关联配置。比如是否将静态文件从S3切换到了EC2本地,但EC2的静态服务未开放移动端访问权限。
- 验证S3桶的访问权限:直接用移动端浏览器访问S3静态文件的原始URL,确认是否能正常加载。虽然未修改IAM用户,但检查桶策略是否允许匿名访问,或者ACL是否限制了移动端的请求来源。
- 检查前端代码中的静态文件路径:确认是否存在将相对路径改为内网绝对路径的情况(如
http://192.168.x.x/static/xxx.css),这类路径仅内网桌面能访问,移动端无法解析。
三、EC2部署后的配置差异排查
- 检查EC2上的Web服务监听地址:执行
ss -tulpn | grep <服务端口>(如80),确认服务是否监听0.0.0.0(允许所有IP访问),而非仅127.0.0.1(仅本地访问)。 - 查看Web服务日志:执行
tail -f /var/log/nginx/access.log(以Nginx为例),检查移动端的请求是否到达EC2,是否有报错信息。如果日志中无移动端请求记录,说明请求被网络层拦截。 - 确认EC2防火墙规则:执行
ufw status(如果用UFW),检查是否新增了限制端口访问的规则,阻止了移动端的请求。
四、移动端本地环境排查
- 关闭移动端的VPN/代理服务:部分代理会拦截对公网IP的请求,导致连接超时。
- 强制刷新浏览器缓存:长按浏览器刷新按钮选择“强制刷新”,清除旧的静态文件缓存后重新测试。
- 更换移动浏览器测试:排除特定浏览器的缓存或设置问题,比如用Chrome、Safari分别验证。
内容的提问来源于stack exchange,提问作者Bennyh961
相关产品推荐
相关产品推荐

