Вопрос

Я установил лак Turpintine на нашем промежуточном сайте, следуя инструкциям на Magento-Терпентин вики.

Наш сайт работает на Ubuntu 14.04, NGINX, varnish-4.0.3m, Turpentine v0.6.5, Magento 1.9.2.

Это мои DAEMON_OPTS в /etc/default/varnish

DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -p cli_buffer=16384 \
             -p feature=+esi_ignore_other_elements \
             -p vcc_allow_inline_c=on \
             -s malloc,256m"

Я успешно установил модуль turpentine, только по-настоящему изменив конфигурацию секретного ключа аутентификации Varnish с помощью \n добавлен черный список URL-адресов и включена информация об отладке.

Когда я попытался сохранить свою конфигурацию, я получил следующую ошибку:

Failed to apply the VCL to 127.0.0.1:6082: Got unexpected response code from Varnish: 106 Message from VCC-compiler: directors are now in directors VMOD. ('input' Line 27 Pos 1) director default round-robin { ########---------------------- Running VCC-compiler failed, exited with 2 VCL compilation failed

Это то, что у меня есть в скипидаре. var/default.vcl файл:

vcl 4.0;
C{
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <pthread.h>
static pthread_mutex_t lrand_mutex = PTHREAD_MUTEX_INITIALIZER;
void generate_uuid(char* buf) {
pthread_mutex_lock(&lrand_mutex);
long a = lrand48();
long b = lrand48();
long c = lrand48();
long d = lrand48();
pthread_mutex_unlock(&lrand_mutex);
sprintf(buf, "frontend=%08lx%04lx%04lx%04lx%04lx%08lx",
a,
b & 0xffff,
(b & ((long)0x0fff0000) >> 16) | 0x4000,
(c & 0x0fff) | 0x8000,
(c & (long)0xffff0000) >> 16,
d
);
return;
}
}C
import std;
director default round-robin {
{
.backend = {
.host = "127.0.0.1";
.port = "8080";
.first_byte_timeout = 300s;
.between_bytes_timeout = 300s;
}
}
}
director admin round-robin {
{
.backend = {
.host = "127.0.0.1";
.port = "8080";
.first_byte_timeout = 21600s;
.between_bytes_timeout = 21600s;
}
}

По-видимому, мне удалось исправить это, создав custom_include.vcl файл из version-4.vcl поскольку его не хватало

cp app/code/community/Nexcessnet/Turpentine/misc/version-4.vcl app/code/community/Nexcessnet/Turpentine/misc/custom_include.vcl

Но теперь, когда я пытаюсь сохранить конфигурацию, я получаю новую ошибку:

Failed to apply the VCL to 127.0.0.1:6082: Varnish data to write over length limit by 749 characters

По-видимому, это связано с -p cli_buffer=16384 который я установил в DAEMON_OPTS около /etc/default/varnish.Когда я пытаюсь увеличить это значение, я все равно получаю ту же ошибку, но с другим пределом.

Failed to apply the VCL to 127.0.0.1:6082: Varnish data to write over length limit by 8941 characters.

У меня ничего нет в magento/var/log/ или /var/log/varnish/ для нанесения лака.Я попытался связаться с администратором Varnish, чтобы узнать, было ли что-то не так с cli_buffer, но не смог увидеть ничего примечательного.

$ sudo varnishadm
varnish> param.show cli_buffer
200        
cli_buffer
        Value is: 16k [bytes]
        Default is: 8k
        Minimum is: 4k

        Size of buffer for CLI command input.
        You may need to increase this if you have big VCL files and use
        the vcl.inline CLI command.
        NB: Must be specified with -p to have effect.

Заранее благодарю за любые советы и предложения.

Это было полезно?

Решение 2

Кажется, я добился того, что это заработало, применив исправление, которое я нашел в Билет на GitHub 915.

Во-первых, исправление, которое я применил для моей первой ошибки, вводило в заблуждение, поэтому я удалил созданный мной файл.

rm app/code/community/Nexcessnet/Turpentine/misc/custom_include.vcl

Затем я объединил разрабатываемая ветвь репозитория Magento-Turpintine с моим проектом Magento, как предложено в Билет на GitHub 915.

Теперь, когда я сохраняю конфигурацию Turpintine / применяю конфигурацию Varnish, я не получаю сообщений об ошибках.

Хотя сайт, похоже, не сильно ускорился, как я могу убедиться, что varnish работает так, как предполагалось?

ОБНОВЛЕНИЕ Я смог убедиться, что Varnish работает, запустив varnishstat, если средний показатель посещаемости больше 0, это означает, что происходит загрузка кэша.

Другие советы

Спасибо, что поделились.Я только что установил последнюю версию из devel ветвь для устранения очень похожей проблемы.Чтобы проверить, кэширует ли Varnish, вы можете использовать любую из следующих команд varnishtop, если у вас есть доступ к серверу.

/usr/bin/varnishtop -i RxURL
/usr/bin/varnishtop -i RxHeader -C -I \^HOST
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top