[Очевидно, я запускал varnishd как root]
Теперь я понял:
[gideon@mywebsite ~]$ sudo varnishd -f /etc/varnish/default.vcl -s malloc,128m -T 127.0.0.1:2000 -a 0.0.0.0:8000 -d
[sudo] password for gideon:
Platform: Linux,2.6.32-358.6.2.el6.x86_64,x86_64,-smalloc,-smalloc,-hcritbit
200 284
-----------------------------
Varnish Cache CLI 1.0
-----------------------------
Linux,2.6.32-358.6.2.el6.x86_64,x86_64,-smalloc,-smalloc,-hcritbit
varnish-3.0.7 revision f544cd8
У меня ОЧЕНЬ простая установка. Perl Webapp работает на 0.0.0.0:5000
и я хочу, чтобы кэшировал это лаком. Система виртуальная "капля" (или ВМ) на http://www.digitalocean.com. Машина - это Коробка CentOS.
Внутри /etc/sysconfig/varnish/
У меня есть:
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-u varnish -g varnish \
-S /etc/varnish/secret \
-s malloc,128m"
Внутри /etc/varnish/default.vcl
У меня есть:
backend default {
.host = "0.0.0.0";
.port = "5000";
}
Я пробовал несколько вещей, но безуспешно. (Перезапуски, альтернативные конфигурации и т. Д.) Я могу получить доступ к своему приложению по адресу website.com:5000.
Это то, что я получил, когда использовал varnishd
:
$varnishd -f /etc/varnish/default.vcl
-s malloc,128m -T 127.0.0.1:2000 -a 0.0.0.0:80 -d
Failed to create ./vcl.jAoXC8Rf.c: Permission denied
Я пробовал искать различные сообщения (некоторые в SF), все приводили к тупикам или решениям для совершенно разных ситуаций.
Бьюсь об заклад, есть что-то очень простое, что я делаю неправильно, но я даже дошел до того, что убил свою машину, начав с чистой виртуальной машины, установив perl и модули, которые мне нужны, затем заставил мое приложение работать, а затем установил BASIC varnish настройка из документации. Я сделал это ДВАЖДЫ!
Мы будем очень благодарны за любую помощь и указатели.
backend default {
.host = "0.0.0.0";
.port = "5000";
}
Это твоя проблема. У вас не может быть бэкэнд на 0.0.0.0. Вероятно, вы захотите использовать 127.0.0.1.
(0.0.0.0 используется для указания системе прослушивать подключения к любому IP-адресу, но не является действительным IP-адресом для подключения)
Изменить: хорошо, я слишком быстро ответил. Это не решит проблему с разрешениями. Погоди.
Edit2: хорошо, перечитывая, я вижу, что вы устранили проблему с разрешением, поэтому мое решение должно исправить неработающий бэкэнд.
Разрешения на каталог, в который varnish компилирует vcl, Ubuntu использует / var / lib / varnish / Попробуйте chmod 666 -R / var / lib / varnish /
Как видно из приведенного выше кода, вы не работаете с правами root, попробуйте выполнить тестирование с правами root или с помощью sudo. Если это работает, значит, проблема в разрешениях.