Dim*_*nko 14 amazon-cloudfront
我正在使用具有自定义源的CloudFront,并希望将来自Web应用程序的某些请求重定向到CloudFront(客户端使用直接URL,这些URL无法更改为基于CloudFront的URL).为了确保CloudFront上的缓存正确更新,我不得重定向来自CloudFront本身的请求.有没有办法在原始服务器上识别此类请求?
CloudFront是否会向发送到源服务器的请求添加任何自定义标头?或者是否有任何其他可靠的方法来确定请求来自CloudFront?
小智 13
是的,您可以通过检查useragent来识别从cloudfront到您的源服务器的请求.用户代理将是'Amazon CloudFront'
Ste*_*pel 11
Avinash Bijja正确地指出(+1)对于来自Amazon CloudFront服务器的请求,HTTP User-agent标头将是"Amazon CloudFront".不幸的是,这似乎没有明确记录,但是相应论坛中的各个帖子都暗示了这一点,例如,参见AWS Team对用户代理字符串的响应- CF是否覆盖了用户代理字符串?:
你是对的.User-Agent字段始终填充为"Amazon CloudFront".
但是,事实证明,如果原始客户端请求中缺少一个用户代理,则CloudFront目前还不完全可靠:
我可以确认,当原始客户端未发送用户代理时,CloudFront不会将用户代理发送到源.我们在待办事项上对User-Agent处理进行了增强和修复,但目前没有发布日期.我已经寄给你一个有更多细节的PM.
至少截至2013年2月7日,这些增强功能和修复程序显然尚未推出.
这些增强功能和修复程序已于2013年8月5日推出(感谢webbiedave的更新!).
CloudFront是否会向发送到源服务器的请求添加任何自定义标头?
人们会这么认为,但至少它们似乎没有记录在我预期的位置,即CloudFront如何处理和转发对自定义源服务器的请求.鉴于您可以控制原始服务器,您可能只是检查其HTTP访问日志?
或者是否有任何其他可靠的方法来确定请求来自CloudFront?
您需要自己判断可靠性,但CloudFront转发到源服务器的IP地址是CloudFront服务器的IP地址,而不是最终用户计算机的IP地址.- 因此,您可以限制对已发布的Amazon CloudFront公共IP范围的访问 ; 但是,请注意相应的免责声明:
CloudFront IP地址经常更改,我们无法保证提前通知更改.在尽力而为的基础上,我们将提供当前地址列表.客户不应将这些地址用于关键任务应用程序,也不得在DNS名称中对其进行硬编码.[强调我的]
因此,您需要监控此论坛/帖子,以便尽早注意相应的更改(如果这个约束在您的用例中首先是可接受的).
Rez*_*avi 10
更新
这是一个老问题,但我的更新对某人研究或寻找新解决方案很有用.
最近AWS添加了新功能Origin Custom Headers.您可以设置带有秘密值的标头,并通过Web服务器或您的应用程序在源服务器上进行检查.
| 归档时间: |
|
| 查看次数: |
7928 次 |
| 最近记录: |