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

Лакировать перед несколькими серверами с управлением версиями

У меня есть Varnish перед несколькими веб-серверами, я могу запускать их как родные для varnish или через проверки восходящего потока через nginx, но кэшируется только статический контент (неудивительно), также с учетом строк запроса, т.е.

/main.css?v=1 и /main.css?=v2 кешируются отдельно

Я обновляю серверы один за другим, на самом деле, все это невозможно сделать в одно и то же время без простоев, общего развертывания.

Если main.css обновляется один backend и я отправляю запрос в соответствии с новой версией веб-страницы в лак и запрашиваю /main.css?=v2, он все еще может искать файл на машине, на которой установлена ​​старая версия и где main.css еще не обновлен, поэтому теперь я получаю v1 в кеше как v2, и я ничего не могу сделать, если не истечет TTL (что уже слишком поздно).

Я могу вручную аннулировать кеш с помощью запросов, это нормально.

Есть ли какое-нибудь автоматизированное решение без ручного вмешательства в переписывание софта для обратной связи в лак? лайк:

  1. Возможно ли, чтобы истек срок действия кеша при запуске бэкэнда, после того, как зонд исправен?
  2. что-нибудь еще?

Спасибо

Если вы загрузили этот код или адаптировали его для своей версии с лаком, вы можете отправлять запросы типа PURGE с URL-адресом запроса, совпадающим с тем, что вы хотите очистить, чтобы стереть элемент из кеша Varnish. Вы можете использовать это в основном для автоматизации выборочной очистки в конце процесса развертывания на ваших серверах Varnish с помощью команд cURL или аналогичных.

https://github.com/dreamhost/varnish-vcl-collection/blob/master/lib/purge.vcl