如何在AWS CloudFront后使用裸域名?源IP暴露隐患需解决
我之前也碰到过一模一样的问题——把WordPress全站部署在CloudFront后,使用裸域名(比如example.com,不带www)时会随机出现403错误。查了AWS官方文档才知道这是预期行为:当CloudFront分发的CNAME和源站域名相同时,CloudFront会错误地在自身网络里查找源站,导致请求失败。
当时我采用了社区评论里推荐的origin.example.com方案,亲测有效,具体步骤如下:
- 将CloudFront分发的源站地址设置为
origin.example.com - 把CloudFront分发的CNAME配置为
example.com - 在CloudFront的缓存行为设置中,将
Host请求头加入白名单(这一步必须做,否则WordPress无法正确识别访问的域名) - 在DNS管理后台,用A记录将
origin.example.com指向你的服务器公网IP - 同样在DNS后台,用ALIAS/A记录将
example.com指向CloudFront的分发域名
不过这个方案确实存在安全隐患:源服务器的公网IP会被公开,很容易被脚本小子扫描到,进而面临DDoS攻击风险——我之前就因为遭遇DDoS,导致服务器IP被主机商拉黑过。如果之前用Cloudflare代理能很好地隐藏源IP,切换到CloudFront时这个裸域名方案的安全问题确实是个棘手的痛点。
内容的提问来源于stack exchange,提问作者Vila
相关产品推荐
相关产品推荐

