Я установил лак на свой сервер centos, но у меня больше не было производительности, мой сайт загружался за 7 секунд до его установки, а после установки он все еще 7 секунд,
в чем проблема?
sub vcl_recv {
remove req.http.X-Forwarded-For;
set req.http.X-Forwarded-For = client.ip;
if(req.http.cookie ~ "userID" || req.url ~ "^/administrator" || req.url ~ "^/component/banners" || req.request == "POST") {
return (pass);
}
if(req.http.x-logged-in == "False" && req.request != "POST"){
unset req.http.cookie;
}
if (req.http.Accept-Encoding) {
if (req.url ~ "\.(jpg|jpeg|png|gif|gz|tgz|bz2|tbz|mp3|ogg|swf)$") {
remove req.http.Accept-Encoding;
} elsif (req.http.Accept-Encoding ~ "gzip") {
set req.http.Accept-Encoding = "gzip";
} elsif (req.http.Accept-Encoding ~ "deflate") {
set req.http.Accept-Encoding = "deflate";
} else {
remove req.http.Accept-Encoding;
}
}
if (req.url ~ "\.(js|css|jpg|jpeg|png|gif|gz|tgz|bz2|tbz|mp3|ogg|swf)$") {
return (lookup);
}
if (req.backend.healthy) {
set req.grace = 5m;
} else {
set req.grace = 1h;
}
return (lookup);
}
sub vcl_fetch {
if(req.request != "POST" && beresp.http.x-logged-in == "False") {
unset beresp.http.Set-Cookie;
}
set beresp.grace = 1h;
if (beresp.status == 503 || beresp.status == 502 || beresp.status == 501 || beresp.status == 500) {
set beresp.grace = 60s;
return (restart);
}
unset beresp.http.etag;
if(beresp.http.Cache-Control == "no-cache" || beresp.http.Cache-Control == ""){
set beresp.http.Cache-Control = "max-age=300, public, must-revalidate";
}
set beresp.ttl = 5m;
return (deliver);
}
и
NFILES=131072
MEMLOCK=82000
NPROCS="unlimited"
RELOAD_VCL=1
VARNISH_VCL_CONF=/etc/varnish/default.vcl
VARNISH_LISTEN_PORT=80
VARNISH_ADMIN_LISTEN_ADDRESS=127.0.0.1
VARNISH_ADMIN_LISTEN_PORT=6082
VARNISH_SECRET_FILE=/etc/varnish/secret
VARNISH_MIN_THREADS=50
VARNISH_MAX_THREADS=1000
VARNISH_THREAD_TIMEOUT=120
VARNISH_STORAGE_FILE=/var/lib/varnish/varnish_storage.bin
VARNISH_STORAGE_SIZE=1G
VARNISH_STORAGE="file,${VARNISH_STORAGE_FILE},${VARNISH_STORAGE_SIZE}"
VARNISH_TTL=120
DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \
-f ${VARNISH_VCL_CONF} \
-T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT} \
-t ${VARNISH_TTL} \
-w ${VARNISH_MIN_THREADS},${VARNISH_MAX_THREADS},${VARNISH_THREAD_TIMEOUT} \
-u varnish -g varnish \
-S ${VARNISH_SECRET_FILE} \
-s ${VARNISH_STORAGE}"
Используются ли на ваших веб-страницах заголовки, указывающие на кешируемое содержимое?
Если инструкции кэширования в заголовках не позволяют кэшировать страницы, то vanish каждый раз извлекает их с вашего веб-сервера, поэтому задержка веб-сервера все еще существует.
Некоторые страницы всегда нужно будет извлекать из кеша. Если для создания этих страниц требуется 7 секунд, проблема все равно остается.
РЕДАКТИРОВАТЬ:
Я подозреваю, что ваше веб-приложение не поддерживает кеширование, но, чтобы быть уверенным, в вашем вопросе нет этой информации. Я даже не знаю, успешно ли вы перенаправляли запросы через лак.
Если другого трафика не так много, то, возможно, захватите некоторый трафик в файл с помощью tcpdump, включая как запрос varnish и varnish к веб-серверу, так и ответы, а затем используйте что-то вроде wirehark, чтобы просмотреть все заголовки запросов и ответов . Возможно, вы также можете получить некоторые данные журнала из varnish, которые могут подтвердить, что является попаданием в кеш, а что нет.
При необходимости просмотрите этот учебник по заголовкам http, чтобы понять, что делают заголовки, а затем задайте более конкретный вопрос, если все еще не ясно, почему лак не кэширует то, что, по вашему мнению, следует.