部署Next.js 13至EC2+CloudFront+自定义域名SSL后无法访问的解决方法
CloudFront 搭配 EC2 配置故障排查与解决经验
分享出来帮遇到同类问题的人少踩坑:
初始配置情况
- Route 53:配置2条指向CloudFront域名的别名A记录、2条别名AAAA记录,同时将主域名和www子域名设为CloudFront的备用域名
- CloudFront:源站设置为EC2,行为中的「源或源组」配置为主域名;先后尝试过行为+源站仅HTTPS、仅HTTP、HTTP跳转HTTPS等多种协议组合
- EC2:安全组已开放80和443端口,实例处于运行状态,直接用IPv4地址加443端口通过HTTP访问应用完全正常
排查过程
前后花了两天时间,试过各类教程、论坛帖子里的方法,问题都没解决
最终解决步骤
后来试着把CloudFront的源站和行为都改成仅HTTP,同时将行为的缓存模式切换为legacy,下拉菜单选择「所有请求头」——本来只是想看看会不会出现不同的错误,结果应用直接恢复正常了
原因推测
目前初步推测是HTTPS协议阻碍了VPC内资源之间的通信,虽然EC2的安全组已经正确配置允许443端口的HTTPS流量。我还在进一步调查具体原因,如果有读者对此有更深入的见解,欢迎交流。
内容的提问来源于stack exchange,提问作者CjL95
相关产品推荐
相关产品推荐

