Кросс доменные заголовки в настройках Varnish

Пример конфигурации для Varnish, если вы решили отдавать им CORS headers, чтобы разрешить кросс-доменные запросы.

Запросы бывают простые и сложные с точки зрения спецификации CORS, где:

  • простые запросы — это GET, POST, HEAD с заголовками из набора Accept, Accept-Language, Content-Language, Content-Type, последний со значениями application/x-www-form-urlencoded, multipart/form-data или text/plain.
  • сложные запросы — все остальные

Для простых — достаточно передать заголовок: Access-Control-Allow-Origin с указанием разрешенных доменных имен или «*» для любых доменов. Т.е. в секции vcl_deliver достаточно добавить:

Для сложных запросов следует задать дополнительные заголовки.

Access-Control-Allow-Methods — перечислить разрешенные типы запросов;
Access-Control-Allow-Headers — перечислить разрешенные заголовки запроса, дополнительно к тем, что позволены в простом случае.

Для сложных запросов браузер выполняет сначала предварительную отправку методом «OPTIONS». И если сервер подтверждает, что принимает такой запрос (сервер должен вернуть код 200 и заголовки описанные выше), то выполняется уже сам запрос (к примеру, «GET»).

Чтобы браузер не выполнял двойного запроса в следующий раз для конкретного адреса, сервер может устанавливать заголовок Access-Control-Max-Age, указывая время в секундах, в течении которого действует разрешение.

Пример заголовков:

Если запрос содержит какой то из заголовков, которых нет в списке, тогда вы увидите в консоли браузера сообщение вроде:

Access to XMLHttpRequest at ‘http://mysite.com/’ from origin ‘http://test.loc’ has been blocked by CORS policy: Request header field expires is not allowed by Access-Control-Allow-Headers in preflight response.

Мало букафф? Читайте есчо !

Установка Lets' encrypt SSL сертификата на Debian

Июль 24, 2017 г.

Если вы решили сэкономить и получить бесплатный SSL сертификат, то в большинстве случаев сделать это не сложно. Благодаря проекту Lets' encrypt процесс получения и настойки автоматизирован и выполняется буквально 2-3 командами в консоли сервера. ...

Читать

Лечим 403-ю Forbidden - доступ запрещен

Январь 23, 2017 г.

В данном случае от "404 ошибки - файл не найден" нас отделяет целая пропасть. Файл найден, но сервер его не спешит отдавать пользователю, т.к. считает, что у пользователя не достаточно на это прав. Если сервер предотвратил несанкционированный доступ ...

Читать

Скрипт слежения за изменениями в less файлах

Декабрь 2, 2018 г.

Lessc не имеет ключа 'слежения', чтобы выполнять перекомпиляцию при изменении less файлов проекта, как например это сделано у sass компилятора. Это весьма не удобно на этапе верстки шаблона из макета. Для отслеживания я установил UNIX утилиту inotify. ...

Читать

Создание бекапов базы mySQL из консоли unix

Февраль 13, 2018 г.

Ещё одна шпаргалка по администрированию UNIX серверов. На этот раз рассмотрим несколько полезных команд для создания бекапа базы данных из консоли. Нам понадобится команда mysqldump, которая позволяет создавать sql скрипт базы или её части. Создание ...

Читать
 

Комментарии к «Кросс доменные заголовки в настройках Varnish»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: