>  기사  >  운영 및 유지보수  >  Apache HTTP Server의 캐싱 기능을 사용하는 방법

Apache HTTP Server의 캐싱 기능을 사용하는 방법

(*-*)浩
(*-*)浩원래의
2019-11-30 14:23:263626검색

Apache HTTP Server의 캐싱 기능을 사용하는 방법

Apache HTTP 서버는 다양한 방식으로 서버 성능을 향상시키도록 설계된 다양한 캐싱 기능을 제공합니다. 2 3가지 상태 RFC2616 HTTP 캐시 (권장 학습:
apache 서버

)

Mod_cache 및 해당 제공자 모듈 MOD_CACHE_DISK는 지능형 HTTP 인식 캐시를 제공합니다. 콘텐츠 자체는 캐시에 저장되며, mod_cache는 콘텐츠의 캐시 가능성을 제어하는 ​​다양한 HTTP 헤더와 옵션을 모두 존중하도록 설계되었습니다. mod_cache는 프록시 콘텐츠, 동적 로컬 콘텐츠를 처리할 수 있거나 잠재적으로 느린 디스크의 로컬 파일에 대한 액세스를 가속화해야 하는 단순하고 복잡한 캐시 구성을 모두 대상으로 합니다.

이중 상태 키/값 공유 개체 캐시

공유 개체 캐시 API(socache) 및 해당 공급자 모듈은 서버 전체의 키/값 공유 개체 캐싱을 제공합니다. 이러한 모듈은 SSL 세션 및 인증 자격 증명과 같은 낮은 수준의 데이터를 캐시하도록 설계되었습니다.

백엔드를 사용하면 데이터를 서버 전체의 공유 메모리에 저장하거나 데이터 센터 내 Memcache 또는 distcache와 같은 캐시에 저장할 수 있습니다.

특수 파일 캐시

mod_file_cache는 서버 시작 시 파일을 메모리에 미리 로드하는 기능을 제공하고, 액세스 시간을 개선하며, 요청 시마다 캐시할 필요가 없기 때문에 자주 액세스하는 파일의 파일 핸들을 디스크에 저장합니다.

3상태 RFC2616 HTTP 캐시

HTTP 프로토콜에는 RFC2616 섹션 13에 설명된 인라인 캐싱 메커니즘에 대한 지원이 내장되어 있으며 mod_cache 모듈을 사용하여 이 기능을 활용할 수 있습니다.

콘텐츠가 더 이상 신선하지 않을 때 콘텐츠가 완전히 사라지는 단순한 2상태 키/값 캐시와 달리, HTTP 캐싱에는 오래된 콘텐츠를 유지하고 원본 서버에 오래된 콘텐츠가 변경되었는지 묻고 그렇지 않은 경우 다시 새로 고치는 메커니즘이 포함되어 있습니다. .

HTTP 캐시의 항목은 다음 세 가지 상태 중 하나에 존재합니다.

Fresh

콘텐츠가 충분히 새로운 경우(신선한 수명보다 어린 경우) 신선한 것으로 간주됩니다. HTTP 캐싱은 원본 서버를 호출하지 않고도 새로운 콘텐츠를 무료로 제공할 수 있습니다.

Stale

콘텐츠가 너무 오래된 경우(최신 수명 주기보다 이전) 오래된 것으로 간주됩니다. HTTP 캐시는 클라이언트에 오래된 콘텐츠를 제공하기 전에 원본 서버에 연결하여 콘텐츠가 여전히 최신인지 확인해야 합니다.

원본 서버가 여전히 유효하지 않은 경우 원본 서버는 대체 콘텐츠로 응답합니다. 또는 이상적으로 원본 서버는 콘텐츠를 다시 생성하거나 보낼 필요 없이 콘텐츠가 여전히 새로운 것임을 캐시에 알리는 코드로 응답합니다. . 콘텐츠가 다시 새로워지고 주기가 계속됩니다.

HTTP 프로토콜을 사용하면 원본 서버를 사용하여 데이터를 새로 고치려고 할 때 5xx 오류가 발생하거나 다른 요청이 이미 특정 항목을 새로 고치는 과정에 있는 등 특정 상황에서 캐시가 오래된 데이터를 제공할 수 있습니다. 이러한 경우 경고 헤더가 응답에 추가됩니다.

Non Existent

캐시가 가득 찬 경우 공간을 확보하기 위해 캐시에서 콘텐츠를 제거하는 옵션을 유지합니다. 콘텐츠는 언제든지 삭제될 수 있으며 오래되었거나 새로운 콘텐츠일 수 있습니다. htcacheclean 도구는 한 번 실행하거나 데몬으로 배포하여 지정된 크기 또는 지정된 inode 수 내에서 캐시 크기를 유지할 수 있습니다. 도구는 새 콘텐츠를 삭제하기 전에 이전 콘텐츠를 삭제하려고 시도합니다.

위 내용은 Apache HTTP Server의 캐싱 기능을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.