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

Ноябрь 23, 2015 г.

Столкнулся недавно с такой проблемой - не смог файловым менеджером даже просто открыть папку с временными файлами на своём веб-сервере под UNIX. Размер, папки, т.е. сам список файлов оказался объемом в 85 мегабайт. Сколько там файлов, я даже не представляю. ...

Читать

Как проверить занят ли в port в unix

Январь 31, 2023 г.

... и выполнить те или иные операции в зависимости от результата проверки, используя командный процессор, например bash. Примерно так формулируется очередная небольшая задача, возникающая в ежедневном потоке рутины автоматизации работы. Существует ...

Читать

Перенос базы PostgreSQL с сервера на сервер

Январь 24, 2017 г.

Не простая операция,  если вы не имели опыта настройки / работы с postgresql до сих пор. Расскажу поэтапно как выгрузить дамп базы, и как затем этот дамп ...

Читать

Арифметические операции в консоли UNIX

Сентябрь 12, 2018 г.

Как произвести в bash/sh простейшие вычисления? Давайте рассмотрим несколько примеров. Операции с целыми числами Пока вас интересуют целочисленные вычисления, вы можете пользоваться командами встроенными в bash. Вот 6 арифметических команд, которые ...

Читать
 

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

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



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