这个问题是边缘堆栈溢出/服务器错误,所以请不要反对我,它就在这里:)
我在AWS,nginx上托管了一个服务,它后面有node.js。我有一个cloudfront发行版设置,用于服务来源为服务的请求(能够增长w/o,添加应用服务器)
Amazon建议在设置cloudfront发行版(特别是用户代理)时,从转发的请求中过滤大部分头,他们声称用户代理可能会发生很大的变化,从而降低CDN设置的有效性。
这对于大多数情况下都很有用,除非尝试在facebook上共享页面,在这种情况下,我需要知道用户代理实际上是facebook (facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php))才能返回自定义响应。
为了在这种情况下使用自定义的cloudfront行为,我会为facebook共享创建一个特殊的路径,但我无法控制用户将做什么,共享url可能与“常规”服务器url相同。
有什么建议吗?
发布于 2020-10-01 01:07:59
现在可以使用原产地请求策略。
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html
这允许我们将头转发到原点,而无需考虑它们的缓存目的。虽然可以根据需要对策略进行微调,但是有一个名为Managed-UserAgentRefererHeaders
的预定义的源请求策略,它使源User-Agent
头在原点(或在原点请求Lambda@edge函数中)可见。
https://serverfault.com/questions/774560
复制相似问题