정적 캐시: 정의 및 작동 방식
게시 됨: 2022-06-30캐싱 전략은 까다롭기 때문에 지원 관리자인 Ryan Belisle이 시간을 내어 정적 캐싱을 사용하여 더 빠른 사이트를 제공하는 한 가지 방법을 설명했습니다.
계속 읽으십시오:
- 캐시 정적 콘텐츠란 무엇입니까?
- 정적 캐시의 이점.
- 정적 캐싱의 제한 사항.
- 정적 캐싱을 구현하는 방법.
- 정적 캐싱을 비활성화하는 방법.
전자 상거래에서 판촉 캠페인에 비용을 지불하고 반짝이는 것을 보는 것보다 비참한 일은 거의 없습니다. 때로는 판촉이 기대를 능가하고 사전 조치만으로는 충분하지 않습니다. 그럼?
마지막 순간에 사이트에서 더 많은 성능을 끌어내기 위한 한 가지 전술은 정적 캐싱이라는 방법입니다.
머리! 예상되는 웹 트래픽 급증을 처리하기 위해 막바지 접근 방식을 취하는 것은 권장하지 않습니다. 인프라 또는 앱 최적화의 모범 사례를 이미 적용했고 마케팅 결과가 기대치를 초과하는 경우에 해당됩니다.
캐시 정적 콘텐츠란 무엇입니까?
많은 형태의 캐싱을 사용할 수 있지만 정적 캐싱은 동일한 페이지에 대한 후속 요청을 제공하기 위해 사용자의 요청에 의해 생성된 페이지를 HTML 문서로 변환하는 방법입니다 .
서버가 사이트 코드 자체를 해석하고 데이터베이스를 쿼리하고 HTML 문서를 다시 고객에게 반환하고 마지막으로 페이지를 로드하는 대신 정적 캐싱은 처음 두 단계의 단일 결과를 저장하고 해당 문서를 요청하는 다른 사람에게 제공합니다. .
정적 캐싱의 이점
기본적이지만 정적 캐싱은 특히 다음 영역에서 중대한 영향을 미칠 수 있습니다.
- 오버헤드 감소 : 사이트의 페이지에 대한 요청을 처리하기 위해 PHP 프로세스를 생성할 필요 없이 웹 서버는 정적으로 캐시된 페이지의 요청에 직접 HTML 문서를 다시 제공합니다.
- 모든 클릭연결 트래픽에 대해 "랜딩 페이지" 제공 : 귀하의 홈페이지를 방문하거나 특정 URL에 대한 링크를 따라가는 사람을 위해 리소스를 소비하는 대신 사이트의 다른 페이지에 대한 정상적인 작동을 방해하지 않고 기본적으로 캐시된 페이지를 제공합니다. .
정적 캐싱의 한계
그러나 정적 캐싱에는 한계가 있으며 일반적으로 임시 솔루션으로만 사용해야 한다는 점을 지적하고 싶습니다. 명심하세요:
- 정적 캐시는 바로 정적입니다. 사이트에 대한 변경 사항은 이러한 방식으로 캐시된 페이지에 반영되지 않습니다.
- "장바구니의 항목" 또는 고객의 세션 파일에 저장된 기타 데이터와 같은 정보는 이 페이지에서 작동하지 않습니다.
정적 캐싱을 구현하는 방법
정적 캐싱을 구현하는 몇 가지 다른 방법이 있지만 다음은 수동으로 수행하는 기본 단계입니다.
1. SSH로 서버에 로그인합니다.
2. 웹루트에 별도의 디렉토리를 생성하여 정적 캐시에 사용된 HTML 문서를 저장합니다.
3. cURL 또는 Wget을 사용하여 대상 페이지에 요청하고 해당 URI 이름(인덱스, 제품 등)으로 디렉토리에 저장
4. .htaccess 파일 상단에 재작성을 추가하여 다음과 같은 정적 캐시 파일로 요청을 리디렉션합니다.
[암호]
RewriteCond %{REQUEST_URI} ^/?example_category$ [NC]
RewriteRule .* https://www.domain.tld/static/example_category.html [R=302,L]
[/암호]
또는 이 프로세스를 처리하는 스크립트를 작성할 수도 있습니다. 아래 예에서는 각 줄에 별도의 URL이 있는 파일을 만들 수 있습니다. 그런 다음 정적 캐시를 생성하기 위해 다음 URL을 읽습니다.
[코드 언어 = "bash"]
#!/bin/bash
# 기본 인수 유효성 검사
if [ "$#" -ne 2 ]; 그 다음에
echo -e "스크립트에 두 개의 인수를 전달해야 합니다.\n\n사용법: ./nexcess_static_cache_helper.sh 도메인 url_list_file\n"
1번 출구
파이
# 도메인에 대한 데이터 가져오기
도메인=$1
페이지 파일=$2
# 현재 디렉토리에 정적 페이지를 위한 디렉토리 생성
cache_dir=./static_cache
만약에 ! [[ -d $cache_dir ]]; 그 다음에
mkdir $cache_dir
파이
# 정적 페이지를 HTML 파일로 다운로드
URL_list=$(고양이 $pages_file)
$URL_list에 있는 URL의 경우; 하다
request_uri=$(echo $URL | cut -d/ -f 4-)
if [[ -z “$request_uri” ]]; 그 다음에
cache_page_name="색인"
request_uri="/"
또 다른
cache_page_name=$(echo $request_uri | perl -pe 's,/|\.,_,g')
파이
wget -q $URL -O $cache_dir/$cache_page_name.html
echo “$request_uri $cache_page_name” >> $HOME/temp_url.file
완료
# htaccess를 위한 블록 포맷
에코 -e "########"
echo -e "# START: $(date)에 생성된 정적 캐시 URL 재작성"
에코 -e "########"
echo -e "RewriteEngine 켜기"
고양이 $HOME/temp_url.file | uri 페이지를 읽는 동안; 하다
echo "RewriteCond %{REQUEST_URI} ^/?${uri}$ [NC]\n"
echo "RewriteRule .* https://www.${domain}/static_cache/$page [R=302,L]\n"
완료
에코 -e "######"
echo -e "# END: $(date)에 생성된 정적 캐시 URL 재작성"
에코 -e "######"
rm $HOME/temp_url.file
[/암호]

위 스크립트를 사용하려면:
1. 사이트의 웹 루트로 이동한 다음 cache_list.txt 또는 원하는 파일 이름을 만듭니다.
2. 파일을 엽니다. 각 URL 항목에 대해 새 줄을 사용하여 정적 캐시되어야 하는 각 페이지의 URL을 추가합니다. 다음과 같아야 합니다.
[암호]
https://www.example.com/
https://www.example.com/sale
https://www.example.com/products
[/암호]
파일을 저장한 다음 위의 스크립트로 파일을 만들고 nexcess_static_cache_helper.sh 또는 원하는 이름으로 저장합니다.
파일을 실행 가능하게 만드십시오:
[코드]chmod +x nexcess_static_cache_helper.sh[/코드]
준비가 되면 스크립트를 실행하되 자신의 파일 이름과 실제 도메인 이름을 사용하여 교체합니다.
[코드]./nexcess_static_cache_helper.sh example.com cache_list.txt[/코드]
이렇게 하면 정적 캐시에 사용할 HTML 문서가 포함된 static_cache 디렉토리가 웹루트 아래에 생성됩니다. 또한 터미널은 다음과 유사한 출력을 표시합니다.
[암호]
########
# 시작: 2017년 9월 18일 월요일 15:49:11 EDT에 생성된 정적 캐시 URL 재작성
########
다시 쓰기 엔진 켜기
RewriteCond %{REQUEST_URI} ^/?/$ [NC]\n
RewriteRule .* https://www.example.com/static_cache/index [R=302,L]\n
RewriteCond %{REQUEST_URI} ^/?세일$ [NC]\n
RewriteRule .* https://www.example.com/static_cache/sale [R=302,L]\n
RewriteCond %{REQUEST_URI} ^/?제품$ [NC]\n
RewriteRule .* https://www.example.com/static_cache/products [R=302,L]\n
######
# END: 2017년 9월 18일 월요일 15:49:11 EDT에 생성된 정적 캐시 URL 재작성
######
[/암호]
위의 블록을 복사하여 사이트의 .htaccess 파일 맨 위에 붙여넣습니다. 이 파일은 일반적으로 현재 디렉토리에 있어야 합니다.
이제 정적 캐시가 활성화되어야 합니다. 좋은 하우스키핑을 위해 이전 단계에서 생성한 파일을 삭제합니다.
[코드]rm nexcess_static_cache_helper.sh cache_list.txt[/코드]
정적 캐싱을 비활성화하는 방법
정적 캐싱을 비활성화하려면 .htaccess 파일에 있는 코드 블록을 제거하십시오.
또한 파일을 재생성해야 하는 경우 스크립트를 다시 실행하면 HTML 문서가 최신 버전으로 바뀝니다. 나중에 참조할 수 있도록 타임스탬프를 업데이트하기 위해 .htaccess 코드 블록도 교체하는 것이 좋습니다.
이제 당신은 알고 있습니다
이전에 언급했듯이 이것은 일시적인 방법일 뿐이며 기본 성능 최적화 전략으로 사용해서는 안 됩니다. 장기적인 솔루션의 경우 최적화 가이드를 확인하거나 CDN을 구현하거나 지원 팀에 문의하여 Magento, WooCommerce 또는 WordPress 호스팅과 같은 추가 옵션을 살펴보십시오.
또는 Nexcess의 관리 WordPress 패키지를 확인하여 사이트 성능을 최적화하는 방법을 확인하십시오.