Cloudfront返回401以响应请求

时间:2015-11-23 05:36:41

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

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

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

describe("Test if user enters an acceptable user input which is alphanumeric", function () {
    it("Should test if user enters alphanumeric or not", function () {
      expect(Services.userFilter()).toEqual(false);
    });
  });

我也将force_ssl设置为true。

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

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

我很困惑为什么我得到401,因为原始域名列在云端原点。

知道我在这里做错了吗?

1 个答案:

答案 0 :(得分:1)

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

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