我正在尝试在 AWS Cloudfront 上使用 lambda@edge 为多个网站实施“代理”。
我的设置大致是:
DNS:*.domain.com -> some_uuid.cloudfront.net(Cloudfront 分布)
Cloudfront:some_uuid.cloudfront.net -> s3 存储桶来源
s3 存储桶:网站/(包含多个网站的文件夹)
lambda@edge 函数:定义为 origin-request
我的 lambda@edge 函数非常简单:
检查网站资源是否存在于 s3 存储桶中。
如果是这样,请将请求 uri 更改为资源 s3 url。
如果没有,则向后端服务器发送请求以呈现资源,存储在 s3 上并返回它。
我无法获取网站的原始域。例如,如果我尝试访问“my_website.domain.com” - 在我的 lambda 函数中,我没有来自请求的域信息。
我想我可以实现另一个 lambda@edge 函数作为查看器请求以将域作为标头传递,但如果可以的话,我宁愿避免这种情况。
还有其他解决方案吗?
谢谢