Cloudfront를 자산 호스트로 사용하는 Rails 앱이 있습니다. 글꼴을 제외하고는 모든 것이 좋습니다. 브라우저가 cloudfront에서 캐시 된 글꼴을 가져 오도록하려면 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==
원본 도메인이 cloudfront 원본에 나열되어 있다는 점을 감안할 때 401을받는 이유가 혼란 스럽습니다.
내가 여기서 뭘 잘못하고 있는지 아십니까?
사이트에서 http와 HTTPS를 동시에 사용합니까? 이 경우 CDN은 첫 번째 요청과 해당 체계를 캐시합니다. 첫 번째 요청이 http를 통해 이루어 졌다면 구성이 Cor에 있더라도 모든 HTTPS가 무시됩니다. 하나를 선택하고 CDN 캐시를 무효화하고 상황이 어떻게 진행되는지 확인하는 것이 좋습니다.
원본 헤더를 전달하도록 cloudfront의 동작을 설정하면 cloudfront는 http 및 HTTPS에 대해 서로 다른 복사본을 캐시하므로 두 체계 모두에서 작동합니다. 그러나 이것은 열등합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다