Назад | Перейти на главную страницу

Ошибка CORS при распространении CloudFront с Nginx Origin

У меня есть дистрибутив CloudFront с сервером Nginx в качестве источника (точнее, сервер Media Temple DV). Я включил Access-Control-Allow-Origin: * заголовок, поэтому шрифты будут работать в Firefox. Однако Firefox выдает ошибку CORS для шрифтов, загруженных из этого дистрибутива CloudFront / Nginx.

Я создал другой дистрибутив CloudFront, на этот раз с сервером Apache в качестве источника, и установил Access-Control-Allow-Origin: * также. Firefox без проблем отображает шрифты из этого источника.

Я создал здесь демонстрационную страницу: http://kristengrote.com/cors-test/

Когда я выполняю curl запрос одного и того же файла шрифта из каждого дистрибутива, оба файла возвращают почти одинаковые заголовки:

Apache Origin                                                            Nginx Origin                           
———————————————————                                                      ——————————————————— 
HTTP/1.1 200 OK                                                          HTTP/1.1 200 OK
Server: Apache                                                           Server: nginx
Content-Type: application/font-woff                                      Content-Type: application/font-woff
Content-Length: 25428                                                    Content-Length: 25428
Connection: keep-alive                                                   Connection: keep-alive
Date: Wed, 11 Jun 2014 23:23:09 GMT                                      Date: Wed, 11 Jun 2014 23:15:23 GMT
Last-Modified: Tue, 10 Jun 2014 22:15:56 GMT                             Last-Modified: Tue, 10 Jun 2014 22:56:09 GMT
Accept-Ranges: bytes                                                     Accept-Ranges: bytes
Cache-Control: max-age=2592000                                           Cache-Control: max-age=2592000
Expires: Fri, 11 Jul 2014 23:23:09 GMT                                   Expires: Fri, 11 Jul 2014 23:15:23 GMT
Access-Control-Allow-Origin: *                                           Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, HEAD                                  Access-Control-Allow-Methods: GET, HEAD
Access-Control-Allow-Headers: *                                          Access-Control-Allow-Headers: *
Access-Control-Max-Age: 3000                                             Access-Control-Max-Age: 3000
X-Cache: Hit from cloudfront                                             X-Cache: Hit from cloudfront
Via: 1.1 210111ffb8239a13be669aa7c59f53bd.cloudfront.net (CloudFront)    Via: 1.1 fa0dd57deefe7337151830e7e9660414.cloudfront.net (CloudFront)
X-Amz-Cf-Id: QWucpBoZnS3B8E1mlXR2V5V-SVUoITCeVb64fETuAgNuGuTLnbzAhw==    X-Amz-Cf-Id: E2Z3VOIfR5QPcYN1osOgvk0HyBwc3PxrFBBHYdA65ZntXDe-srzgUQ==    
                                                                         Age: 487
                                                                         X-Accel-Version: 0.01
                                                                         X-Powered-By: PleskLin
                                                                         X-Robots-Tag: noindex, nofollow

Итак, единственный вывод, который я могу сделать, заключается в том, что что-то в Nginx мешает Firefox распознавать CORS и разрешать шрифты через CloudFront.

Есть идеи о том, что, черт возьми, здесь происходит?