Кросс доменные заголовки в настройках 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.

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

Просмотр логов в UNIX

Апрель 8, 2019 г.

Речь пойдет о полезных командах для просмотра логов в UNIX. Все мы знаем, что в папке /var/log, демоны unix-системы типично сохраняют свои логи. Переходим в нужную папку: [crayon-68ab357f59816502770083/] К примеру, мы хотим посмотреть файл ...

Читать

Выполнение команды от имени другого пользователя

Март 17, 2022 г.

Команда su позволяет выполнить любую операцию от имени существующего пользователя. К примеру от имени пользователя nginx: [crayon-68ab357f59ad2119350908/] Должно вывести nginx, но скорее всего ничего не получится и вы увидите сообщение ...

Читать

Создание архива без сохранения абсолютного пути в UNIX

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

Если вы укажите полный путь архивируемой папки в UNIX, то файлы будут размещены в архиве вместе полным путем. Не всегда это удобно и правильно, зависит от выполняемой задачи. Как отсечь абсолютные пути, оставив только относительные? Для этого ...

Читать

Добавление SSL сертификатов для разных сайтов на одном ip

Январь 19, 2018 г.

Давайте рассмотрим порядок действий и настройку SSL сертификата в apache2. В сети довольно много гайдов. Все они примерно следуют одному и тому же алгоритму. ...

Читать
 

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

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



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