2014-07-13 2 views
0

У меня есть веб-приложение tomcat, использующее CloudFront, Apache и S3 для статической доставки контента. Статическое содержимое использует версионную структуру папок для обеспечения нулевого обновления времени простоя:Проблема с конфигурацией CORS с CloudFront, S3 и Apache

V1 
    css 
    images 
    javascript 
    fonts 
V2 
    css 
    images 
    javascript 
    fonts 
etc 

Для всего, кроме CSS-файлов, эти ссылки сразу к CDN от приложения. Однако поддержка существующего корпоративного веб-приложения необходима, поэтому существующие ссылки/изображения и/фонты не могут быть изменены.

Для борьбы с этим, я настроил собственное происхождение на apache EC2, который служит в качестве обратного прокси-сервера для ведра S3. Он использует заголовок referer из файла css, чтобы направлять ссылку на изображение в правильный каталог.

Это прекрасно работает, за исключением шрифтов, где firefox сообщает, что нарушение CORS происходит на EC2. Это не имеет никакого смысла для меня, поскольку и весь контент размещен на S3.

Тем не менее, у меня есть конфигурация конфигурации CORS в ведре S3, а Header устанавливается в apache для Access-Allow-Control-Origin и CloudFront, передавая заголовок Origin. Файлы css обслуживаются штрафом без нарушений CORS, но шрифты не будут обслуживаться. Есть ли конфигурация в Apache, которую я пропускаю, или это что-то еще? Буду признателен за любую помощь, которую я могу получить.

Благодаря

ответ

0

26 июня 2014 AWS добавлена ​​поддержка CORS в CloudFront, вы используете эту поддержку?

Этот SO ответ предоставляет информацию о включении его для конкретного распределения: https://stackoverflow.com/a/24459590/3195497

Если это не включен, то я думаю, что CloudFront в кэше ответ без заголовка Access-Allow-Control-Origin и служит для ответа, независимо от того, какой Origin отправлен в запросе.

Смежные вопросы