据我了解,只有当 cloudfront 能够从我的网站 url 访问文件时,使用 cloudfront 的自定义源服务器才有效:
例如:www.domain.com/hello.html
但是,我的网站需要登录才能查看 hello.html。我怎样才能拥有登录机制并仍然使用自定义源服务器在云端缓存我的真实 hello.html 页面?
我正在使用 Ruby on Rails 顺便说一句,但这也适用于其他堆栈。
据我了解,只有当 cloudfront 能够从我的网站 url 访问文件时,使用 cloudfront 的自定义源服务器才有效:
例如:www.domain.com/hello.html
但是,我的网站需要登录才能查看 hello.html。我怎样才能拥有登录机制并仍然使用自定义源服务器在云端缓存我的真实 hello.html 页面?
我正在使用 Ruby on Rails 顺便说一句,但这也适用于其他堆栈。
我很确定这是不可能的。正如您所说,CloudFront 必须能够访问文件以提供和缓存它。我从未见过告诉 CloudFront 使用密码来访问文件的选项。
一个想法:也许您可以在要求用户输入密码之前检查您的 Rails 应用程序,如果请求来自 CloudFront(我确定有一些标头表明这一点),如果是这样,绕过登录要求?
编辑:
它在文档中说:
Do not configure your origin server to request client authentication.
我很确定的一件事是用户代理。检查user_agent =~ /cloudfront/i
并绕过身份验证?