주기적인 Squid 캐시 리셋
글쓴이: yves1 / 작성시간: 수, 2009/12/23 - 2:35오후
리눅스 초보입니다.
CentOS에 Squid를 운영중인대요. 로그 화일은 cron 설정을 통해서 rotate 시켜서 주기적으로 리셋을 하고 있습니다.
주기적으로 Squid 캐시를 리셋해야 하는대요. (리얼 서버의 변경된 내용 적용하기 위해).
현재로는 필요시에 squid에 로그인해서 수작업으로 캐시 디렉토리를 삭제하고 다시 만듭니다.
cron이나 스크립트를 사용해서 캐시 리셋이 가능한가요 ??
명령어 부분은 스크립트가 가능할 것 같은대요.
프로세스 id를 확인해서 해당 대몬을 내리고 리셋하는 방법이 있을까요 ??
아니면 killall 명령어를 쓰는것이 좋을까요 ??
좋은 방법이 있으시면 공유 부탁드립니다.
감사합니다.
Forums:
"리얼 서버의 변경된 내용 적용하기 위해"서 라구요?
원래 캐시란 제품이 리얼 서버의 변경된 내용이 있을 경우 그것을 반영하게 설계됩니다. 예를 들면 must-revalidate 나 no-cache, If-Modified-Since 등등들이 그것이죠. 그런 것은 HTTP 1.1 RFC 에 모두 정의되어 있는 것들입니다. 왜 캐시를 리셋해야 하는지 잘 모르겠군요.
님 말씀대로라면 ...
squid conf 설정 화일에서 위의 "must-revalidate 나 no-cache, If-Modified-Since" 옵션들을 설정하면 Real 서버의 내용이 업데이트된 경우에 cache의 내용을 서비스 하는게 아니고 , update 된 내용을 real 서버에서 가져다가 서비스 한다는 말씀인가요 ?
위의 기능이 않되는 것 같아서 , 지금까지 수작업으로 cache를 리셋해왔었습니다.
squid.conf 파일에
squid.conf 파일에 설정하는 것이 아니라, http 웹 서버에서 response 로 위 directive 들을 설정해야 합니다. 자세한 내용은 HTTP 웹서버에서 어떻게 response 에 위의 내용을 알아보시고, HTTP RFC 2616 을 살펴보세요.
보통 Cache 에서는 설정에 따라 서비스를 하기 전에 origin 에 If-Modified-Since 를 이용해서 물어볼 수 있습니다. 설정이 제대로 된 squid 와 http 서버라면 cache 리셋없이 하실 수 있을 것입니다.
감사합니다..
,,
댓글 달기