[분명히 나는 루트로 varnishd를 실행하고 있었습니다]
이제 나는 이것을 얻습니다:
[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
광택 처리를 통해 이를 캐시하고 싶습니다. 시스템은 가상이다."작은 물방울"(또는 VM) 켜기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의 일부)을 검색해 보았지만 모두 완전히 다른 상황에 대한 막다른 골목이나 해결책으로 이어졌습니다.
제가 잘못하고 있는 매우 기본적인 것이 있다고 장담합니다. 하지만 시스템을 종료하고 깨끗한 VM에서 시작하여 Perl과 필요한 모듈을 설치한 다음 앱을 작동시키고 BASIC 광택제를 설치하는 지경까지 이르렀습니다. 문서에서 설정하십시오. 나는 이것을 두 번했다!
어떤 도움이나 조언이라도 대단히 감사하겠습니다.
답변1
backend default {
.host = "0.0.0.0";
.port = "5000";
}
이것이 당신의 문제입니다. 0.0.0.0에는 백엔드를 가질 수 없습니다. 대신 127.0.0.1을 사용하고 싶을 수도 있습니다.
(0.0.0.0은 시스템에 모든 IP에 대한 연결을 수신하도록 지시하는 데 사용되지만 연결할 수 있는 유효한 IP는 아닙니다.)
편집: 알겠습니다. 답변이 너무 빨랐습니다. 이렇게 해도 권한 문제가 해결되지 않습니다. 잠시만 기다려 주세요.
Edit2: 좋습니다. 다시 읽어보니 권한 문제가 해결되었으므로 제 솔루션이 작동하지 않는 백엔드를 해결해야 합니다.
답변2
varnish가 vcl을 컴파일하는 디렉토리에 대한 권한은 Ubuntu가 /var/lib/varnish/를 사용합니다. chmod 666 -R /var/lib/varnish/를 시도하십시오.
위 코드에서 루트로 실행되고 있지 않다면 루트로 테스트하거나 sudo를 사용해 보세요. 작동한다면 권한에 문제가 있는 것입니다.