!["-A" 플래그가 있는 htcacheclean은 64개의 캐시 항목만 나열합니다. 나머지는 어디에 있습니까?](https://linux55.com/image/182445/%22-A%22%20%ED%94%8C%EB%9E%98%EA%B7%B8%EA%B0%80%20%EC%9E%88%EB%8A%94%20htcacheclean%EC%9D%80%2064%EA%B0%9C%EC%9D%98%20%EC%BA%90%EC%8B%9C%20%ED%95%AD%EB%AA%A9%EB%A7%8C%20%EB%82%98%EC%97%B4%ED%95%A9%EB%8B%88%EB%8B%A4.%20%EB%82%98%EB%A8%B8%EC%A7%80%EB%8A%94%20%EC%96%B4%EB%94%94%EC%97%90%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
Apache를 실행하는 웹 서버가 있습니다. 캐싱이 활성화된 경우에도 마찬가지입니다 cache_disk_module
.
CacheRoot "/var/cache/httpd/mod_cache"
CacheDirLevels 1
CacheDirLength 1
캐시에 있는 개체의 URL을 나열하고 싶습니다. htcacheclean
플래그와 함께 번들 명령을 사용하여 캐시를 쿼리하면 -A
64개 객체만 반환됩니다.
htcacheclean -A -p/var/cache/httpd/mod_cache
출력: 64줄, 각 줄은 다음 예와 같습니다.
http://<ACTUAL-URL-HERE> 823 102014 200 0 1603846099818215 1603849699818215 1603846099807137 1603846099818215 1 0
사이의 항목하다올바르게 보이고 예상 URL이 포함된 출력을 가져옵니다.
그러나 "find" 명령을 실행하여 파일 수를 계산하면 .header
64개보다 훨씬 많은 파일을 얻게 됩니다.
# find /var/cache/httpd/mod_cache -name '*.header' | wc -l
30440
#
Apache 버전은 현재 CentOS 7.8 배포 버전 2.4.6에서 사용할 수 있으며 다양한 백포트 패치가 포함되어 있습니다.
매뉴얼 페이지에서:
-A List the URLs currently stored in the cache, along with their
attributes in the following order: url, header size, body size, status,
entity version, date, expiry, request time, response time, body
present, head request.
...
LISTING URLS IN THE CACHE
By passing the -a or -A options to htcacheclean, the URLs within the
cache will be listed as they are found, one URL per line. The -A option
dumps the full cache entry after the URL, with fields in the following
order:
...
무슨 일이 일어나고 있는지에 대한 단서를 제공할 수 있는 사람이 있나요? 캐시된 개체 URL의 전체 목록을 어떻게 덤프할 수 있나요 htcacheclean
?
답변1
htcacheclean은 URL의 해시 표현을 영숫자와 @ 및 _ 또는 64개의 가능한 문자로 인코딩합니다. CacheDirLength 1
이를 설정하면 CacheDirLevels 1
모든 사이트 URL의 캐시가 나누어지는 64개의 디렉토리가 제공됩니다.
나머지 해시(디렉터리 이름에 사용되지 않는 해시 문자)와 .header로 구성된 하위 디렉터리 이름 끝에는 .vary도 표시될 수 있습니다. 대부분의 경우 서버 구성에서는 다음을 허용합니다.
Header set Vary "Accept-Encoding"
특정 URL에 대해 다양한 버전의 데이터 캐싱을 트리거하는 또 다른 헤더가 있을 수 있습니다. 일반적으로 생략되는 것은 가능한 값이 많은 User-Agent입니다. 그렇다면 여러 다른 브라우저가 동일한 URL을 방문하면 많은 수의 헤더 파일이 이러한 디렉토리 아래에 캐시될 수 있습니다.
모든 세부 정보를 반환해야 하는 경우가 아니면 를 htcacheclean -A
사용해 보십시오 htcacheclean -a
. URL은 동일하지만 구문 분석하기 더 쉬운 형식입니다.
마지막으로 캐시 디렉터리가 /var/cache/httpd/mod_cache
기본 디렉터리가 아니라고 언급했습니다 /var/cache/[httpd or apache2]/mod_cache_disk
. 이동해도 문제가 없지만 디렉터리가 /etc/default/apache-htcacheclean
구성 파일의 내용과 일치하는지 확인하세요.