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

Как удалить лак?

У меня есть сайт, который в настоящее время использует Varnish для кеширования HTTP-запросов, однако по нескольким причинам он приносит больше вреда, чем пользы.

Моя проблема в том, что я не могу найти способ остановить все HTTP-запросы, проходящие через него. Если я остановлю службу varnishd, весь сайт перестанет работать. Параметры varnish statup указывают, что используется порт 2000, но на Apache нет ничего, что могло бы с ним связываться. Конфигурация Apache указывает на стандартный порт 80.

Это коробка CentOS с Apache 2.2.3, Varnish 2.0.6

Проверьте Varnish VCL (вероятно, default.vcl), чтобы узнать, какой адрес внутреннего сервера он использует (вы можете увидеть это как часть Директива Backend). Вероятно, используется нестандартный порт, например 8080.

Далее вам необходимо сделать следующее:

  1. Отредактируйте конфигурацию Apache для привязки к порту 80
  2. Убить Varnish
  3. Перезагрузите Apache на 80

Тогда попробуйте заставить Apache прослушивать порт 2000. Возможно, существует правило брандмауэра, которое сопоставляет все соединения порта 80 с портом 2000.

Если вы хотите, чтобы лак продолжал работать, но передавать запросы только на внутренний сервер (возможно, пока вы настраиваете / исправляете конфигурацию по умолчанию), вы можете временно изменить vcl_receive() функция примерно так (непроверенная):

sub vcl_recv() {
  return (pipe);
}

Затем перезапустите лак:

>sudo service varnish restart

Это передаст запрос / соединение обратно в бэкэнд, пока соединение не будет закрыто.