Cloudflare Worker调用AWS EC2公网IP接口返回403 Forbidden解决方案
Cloudflare Worker访问AWS EC2公网IP接口返回403问题解决方案
问题现象
- 使用Cloudflare Worker的fetch方法请求托管在AWS EC2实例上的自有dotnetcore接口时,GET、POST请求均返回403 Forbidden响应,已测试添加user agent、accept等常规请求头,问题依旧存在
示例代码:fetch('http://54.xxx.xxx.xxx/test') - 相同IP的接口请求,在本地JavaScript、普通托管网页、Postman、curl等环境调用均正常返回200状态码
- 同Worker调用其他第三方公共接口无异常,示例代码:
fetch('http://jsonplaceholder.typicode.com/posts')
解决方案
将请求地址从EC2公网IP替换为AWS提供的默认EC2域名即可解决问题,示例代码:
fetch('http://ec2-54-xxx-xxx-xxx.us-west-1.compute.amazonaws.com/test')
补充说明
测试环境为AWS Elastic Beanstalk最简配置:单台t3a.nano实例,使用默认安全组。目前暂未找到官方文档提及直接用IP访问和DNS域名访问的差异,二者理论上解析到的是同一IP;Cloudflare侧也没有对应可处理该类DNS问题的配置项,公开社区暂未搜到同类问题记录,可供遇到相同问题的开发者参考。
内容的提问来源于stack exchange,提问作者Nelson
相关产品推荐
相关产品推荐

