【问题标题】:Cloudfront returning 401 in response to requestsCloudfront 响应请求返回 401
【发布时间】:2015-11-23 05:36:40
【问题描述】:

我有一个使用 cloudfront 作为资产主机的 rails 应用程序。一切都很好,除了字体。为了让浏览器从云端提取缓存的字体,我使用了font_assets gem。不幸的是,这不是我所希望的灵丹妙药。

在 config/environments/production.rb 中,我有这个

config.font_assets.origin = 'https://www.MyURL.com'

我也将 force_ssl 设置为 true。

当我卷曲其中一种字体时,这就是我所看到的。

$ curl -i https://**<mycloudfront domain name>**/assets/opensans-regular-webfont-debcfe09b9fe1d259815c339e9ef4a9f.woff 
HTTP/1.1 401 Unauthorized
Content-Type: application/font-woff
Content-Length: 0
Connection: keep-alive
Server: Cowboy
Strict-Transport-Security: max-age=31536000
WWW-Authenticate: Basic realm=""
Cache-Control: no-cache
X-Request-Id: f1215a95-603c-4b8a-acc9-077a292ee538
X-Runtime: 0.006937
Access-Control-Allow-Origin: https://<**Origin Domain Name**>
Access-Control-Allow-Methods: GET
Access-Control-Allow-Headers: x-requested-with
Access-Control-Max-Age: 3628800
Date: Mon, 23 Nov 2015 05:23:18 GMT
X-Rack-Cache: miss
Via: 1.1 vegur, 1.1 87a5dc4906ffb6323c3ec65df37e46f1.cloudfront.net (CloudFront)
Vary: Accept-Encoding
X-Cache: Error from cloudfront
X-Amz-Cf-Id: 8EQxf_pJ-fAiEis8ztx9icjRbFy5CWPn_ccOFO-WjzgICN-_NSOing==

鉴于源域列在云端源中,我对为什么会收到 401 感到困惑。

知道我在这里做错了什么吗?

【问题讨论】:

  • 请问您的部署结构?你有几个选项取决于设置 CORS
  • 我在 Heroku 上托管应用程序并使用 Cloudfront 缓存资产。对于 Heroku,它只是一个“推送部署”结构。这能回答你的问题吗?
  • 我之前自己做过这个设置,不记得做过什么特别的事情。但是尝试 CloudFront Distributions > Origins > Origin Policy Protocol> Match Origin .. 你已经有了 Access-Control-Allow-Origin: https:// 所以我没有看到任何问题。也试试这个。将您的 CloudFront 分配行为编辑为转发标头。
  • 您的意思是我应该将我的 CloudFront 分配行为编辑为“将标头转发到 .”,即转发所有标头?
  • 不错,值得一试

标签: ruby-on-rails ssl amazon-web-services amazon-cloudfront


【解决方案1】:

您的网站是否同时使用 http 和 HTTPS?在这种情况下,CDN 将缓存第一个请求及其方案。如果第一个请求是通过 http 进行的,那么即使配置在 Cor 中,所有 HTTPS 也会被忽略。我建议选择一个并使 CDN 缓存无效,然后看看情况如何。

如果您将 cloudfront 中的行为设置为转发原始标头,则 cloudfront 将为 http 和 HTTPS 缓存不同的副本,因此适用于两种方案。但这表现较差。

【讨论】:

  • 我将所有 HTTP 请求重定向到 HTTPS,所以我相信这样可以避免这个问题。
  • 是的,应该这样做。不要忘记删除现有的缓存。
  • 感谢提醒!我使现有的缓存失效,然后突然……一切正常。 :)
猜你喜欢
  • 2011-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
  • 2017-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多