varnish 를 처음 쓸때는 신세계였는데, 쓰다보니 이런저런 문제가 좀 난다. 그 와중에 시스템에 트래픽이 많으면 "Backend Fetch Error"가 종종 발생하는데, 이 문제를 해결하려고 로그를 찾아보니 기본으로 설치할때 로그를 저장하지 않았다. 그래서 로그 저장하는 방법을 찾아서 기록을 해 본다.
1. varnishlog 사용
varnishlog 를 이용하여 아래와 같이 입력하면 varnishaccess.log 파일을 생성한다.
varnishlog -w /var/log/varnish/varnishaccess.log |
이때 "&"를 붙여 백그라운드로 실행하게 한다. 이렇게 생성한 로그는 한번 변환을 해 줘야 한다. 아래와 같이 하란다.
varnishlog -r /var/log/varnish/varnishaccess.log > read.log |
2. varnishncsa 사용
아래와 같이 실행한다.
varnishncsa -w /var/log/varnish/varnishncsa.log |
이때 터미널상에서 계속 띄울 수 없으므로 끝에 "&"를 붙인다. 그런데 이 로그는 httpd 로그와 같아서 어느 ip와 주소로 varnishd을 이용했는지는 나오지만 오류를 분석하기에는 부족한 점이 많다. 따라서 오류를 분석할때에는 위 varnishlog 를 통해서 기록하는 것이 좋다.
3. 결론
1과 2를 다 섞어서 쓰는 것이 좋다.
그 외(https://www.howto-connect.com/fix-error-503-backend-fetch-failed-solved/)에서 /etc/varnish/varnish.param 파일에 아래 추가
DAEMON_OPTS="-p thread_pool_min=5 -p thread_pool_max=500 -p http_resp_hdr_len=65536 -p thread_pool_timeout=300" |