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

Varnish не запускается должным образом (вылетает после запуска) без сообщений об ошибках

Я запускаю Varnish (2.0.4 из нестабильного репозитория apt Ubuntu, хотя я также использовал стандартный репозиторий) в тестовой среде (виртуальные машины) на Ubuntu 9.10, скоро будет 10.04.

Когда у меня есть рабочая конфигурация и сервер запускается успешно, кажется, что все в порядке, однако, если по какой-либо причине я останавливаю, а затем перезапускаю демон varnish, он не всегда запускается должным образом, и в syslog или сообщения, чтобы указать, что может быть не так.

Если я запустил лак в режиме отладки (-d) и выпустить start при появлении запроса 7 раз он запустится, но иногда просто «тихо» выключится.

Моя команда запуска ($ 1 позволяет мне передать -d к сценарию, в котором он живет):

varnishd -a :80 $1 \
-T 127.0.0.1:6082 \
-s malloc,1GB \
-f /home/deploy/mysite.vcl \
-u deploy \
-g deploy \
-p obj_workspace=4096 \
-p sess_workspace=262144 \
-p listen_depth=2048 \
-p overflow_max=2000 \
-p ping_interval=2 \
-p log_hashstring=off \
-h classic,5000009 \
-p thread_pool_max=1000 \
-p lru_interval=60 \
-p esi_syntax=0x00000003 \
-p sess_timeout=10 \
-p thread_pools=1 \
-p thread_pool_min=100 \
-p shm_workspace=32768 \
-p thread_pool_add_delay=1

и VCL выглядит так:

# nginx/passenger server, HTTP:81
backend default {
.host = "127.0.0.1";
.port = "81";
}

sub vcl_recv {
  # Don't cache the /useradmin or /admin path
  if (req.url ~ "^/(useradmin|admin|session|sessions|login|members|logout|forgot_password)") {
    pipe;
  }

  # If cache is 'regenerating' then allow for old cache to be served
  set req.grace = 2m;

  # Forward to cache lookup
  lookup;
}

# This should be obvious
sub vcl_hit {
  deliver;
}

sub vcl_fetch {
  # See link #16, allow for old cache serving
  set obj.grace = 2m;

  if (req.url ~ "\.(png|gif|jpg|swf|css|js)$") {
    deliver;
  }

  remove obj.http.Set-Cookie;
  remove obj.http.Etag;

  set obj.http.Cache-Control = "no-cache";
  set obj.ttl = 7d;
  deliver;
}

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

Когда режим отладки и файлы ошибок не помогают, strace - наш лучший друг.

Тип strace -f -o strace.out перед командой запуска varnish, чтобы strace мог отслеживать все ваши системные вызовы.

Затем взгляните на strace.out, особенно на последние строки. В этой конкретной ситуации strace - всегда хороший инструмент, чтобы просветить путь.

Надеюсь это поможет.

Обновление до 2.1.2

http://sourceforge.net/projects/varnish/files/

Вы, вероятно, можете использовать alien для установки версии RPM (в качестве теста), а затем изменить пакет Debian с 2.0 для создания 2.1.2 .deb