Refresh_pattern의 역할:
위 내용은 urlpattern의 내용을 포함하여 Squid의 Refresh_pattern에 대한 몇 가지 이해와 제안을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.
은 페이지가 캐시에 들어간 후 캐시에 머무는 기간을 결정하는 데 사용됩니다. Refresh_pattern 규칙은 명시적인 만료 날짜가 없는 응답에만 적용됩니다. 원본 서버는 Expires 헤더나 Cache-Control:max-age 지시문을 사용하여 만료 기간을 지정할 수 있습니다.
구문: Refresh_pattern [-i] regexp min percent max [options]
min 매개변수는 분 수입니다. 이는 오래된 응답에 대한 최소 시간 제한입니다. 응답이 이 최소 제한보다 오랫동안 캐시에 상주하지 않으면 만료되지 않습니다. 마찬가지로 max 매개변수는 실시간 응답의 최대 시간 제한입니다. 응답이 이 최대 제한보다 오랫동안 캐시에 상주하는 경우 해당 응답을 플러시해야 합니다.
최소 시간 제한과 최대 시간 제한 사이의 응답은 Squid의 마지막 수정 계수 LM-인자 알고리즘 LM-인자=(응답 연령)/(리소스 연령)을 따릅니다. 이러한 응답에 대해 Squid는 응답의 연령과 마지막 수정 계수를 계산하고 이를 백분율 값으로 비교합니다. 응답 기간은 원래 서버가 응답을 생성하거나 마지막으로 확인한 이후 경과된 시간입니다. Last-Modified 헤더와 Date 헤더의 소스 연령이 다릅니다. LM 인자는 소스 연령에 대한 응답 연령의 비율입니다.
일반적으로 사용되는 여러 매개변수의 의미
override-expire
이 옵션을 사용하면 Squid는 Expires 헤더를 확인하기 전에 최소값을 확인하게 됩니다. 따라서 최소 시간이 0이 아닌 경우 Squid는 응답이 만료될 준비가 되어 있어도 확인되지 않은 캐시 적중을 반환할 수 있습니다.
override-lastmod
Squid가 LM 계수 백분율을 확인하기 전에 최소값을 확인하도록 옵션을 변경합니다.
reload-into-ims
이 옵션을 사용하면 Squid가 확인 요청에 no-cache 지시문을 사용하여 요청을 보낼 수 있습니다. 즉, Squid는 요청을 전달하기 전에 요청에 If-Modified-Since 헤더를 추가합니다. 이는 대상에 Last-Modified 타임스탬프가 있는 경우에만 작동합니다. 외부에서 들어오는 요청은 원본 서버에 도달하도록 no-cache 지시어를 유지합니다.
일반적으로 reload-into-ims를 사용할 수 있습니다. 이는 실제로 개체의 시간 초과를 강제로 제어하므로 http 프로토콜의 정신에 위배됩니다. 그러나 대역폭이 좁은 상황에서는 시스템 응답 시간을 크게 향상시킬 수 있습니다.
예:
refresh_pattern -i .css$ 1440 50% 129600 reload-into-ims
refresh_pattern -i .xml$ 1440 50% 129600 reload-into-ims
refresh_pattern -i .html$ 1440 90% 129600 reload-into-ims-
refresh_pattern -i .shtml$ 1440 90% 129600 reload-into-ims
refresh_pattern -i .hml$ 1440 90% 129600 reload-into-ims
refresh_pattern -i .jpg$ 1440 90% 129600 reload-into-ims
refresh_pattern -i .png$ 1440 90% 129600 reload-into-ims
refresh_pattern -i .gif$ 1440 90% 129600 무시 - 다시 로드
refresh_pattern -i .bmp$ 1440 90% 129600 reload-into-ims
refresh_pattern -i .js$ 1440 90% 129600 reload-into-ims
ignore-reload
이 옵션을 사용하면 Squid가 요청의 캐시 없음 지시문을 무시하게 됩니다.
그래요. 콘텐츠가 캐시에 들어가면 적극적으로 제거될 때까지 삭제되지 않도록 하려면 mp3, wma, wmv, gif 등에서 일반적으로 사용되는ignore-reload 옵션을 추가할 수 있습니다.
예:
refresh_pattern -i .mp3$ 1440 50% 2880 무시-재로드
refresh_pattern -i .wmv$ 1440 50% 2880 무시-재로드
refresh_pattern -i .rm$ 1440 50% 2880 무시-재로드
refresh_pattern -i .swf$ 1440 50% 2880 무시-재로드
refresh_pattern -i .mpeg$ 1440 50% 2880 무시-재로드
refresh_pattern -i .wma$ 1440 50% 2880 무시- reload
리소스 연령 = 객체가 캐시에 들어간 시간 - 객체의 마지막_수정
응답 연령 = 현재 시간 - 객체가 캐시에 들어간 시간
LM-factor=(응답 연령) /(리소스 사용 기간)
예를 들어 여기서는 백분율만 고려되고 최소값과 최대값은 고려되지 않습니다.
예: 새로 고침_패턴 20%
www.aaa.com/index.htm --- --lastmodified on the source server is 2007-04-10 02:00:00
Squid의 Proxy.aaa.com/index.htm index.htm이 캐시에 들어간 시간 2007-04-10 03:00: 00
1) 현재 시간이 2007-04-10 03:00:00
자원 연령 =3시-2시=60분
응답 연령 =0분
index.htm은 캐시에 계속 남아 있을 수 있습니다(자원 사용 기간)*20%=12분
즉, index.htm이 캐시에 들어간 후 재확인되기 전까지 12분 동안 머무를 수 있습니다.
2) 현재 시간이 2007-04-10 03:05:00
자원 수명 =3시-2시=60분
응답 수명 =5분
index .htm은 여전히 캐시에 있을 수 있습니다. 체류 시간(리소스 사용 기간)*20%=12분-5=7
LM-factor=5/60=8.3%<20%
2007-04-10 03까지 :12:00 LM -factor=12/60=20% 그 후, 캐시에 있는 index.htm 페이지는 마침내 오래되었습니다.
이번에 index.htm에 대한 요청이 없으면 index.htm은 항상 캐시에 있습니다. index.htm에 대한 요청이 있으면 Squid가 요청을 받은 후 만료되었으므로 Squid가 보냅니다. 변경된 요청이 있는 경우 원본 서버가 이를 수신한 후 index.htm이 업데이트되지 않은 경우 Squid는 캐시를 업데이트할 필요가 없으며 캐시된 콘텐츠를 클라이언트에 직접 반환합니다. 동시에 재설정된 개체가 캐시에 진입한 시간은 2007-04-10 03:13:00과 같이 이 시간 이후에 페이지가 정확히 재확인되는 경우 원본 서버 시간으로 확인됩니다. 재설정 후에는 리소스 수명이 길어지고 해당 캐시의 생존 시간도 길어집니다.
변경 사항이 있는 경우 최신 index.htm을 Squid에 반환합니다. Squid는 이를 수신한 후 캐시를 업데이트한 다음 동시에 Last_Modified를 기반으로 클라이언트에 새 index.htm을 반환합니다. 새 페이지와 페이지를 가져온 시간이 다시 업데이트되면 리소스 수명을 계산하고 추가로 생존 시간을 계산합니다.
실제로 페이지가 캐시에 들어간 후 재확인될 때까지 생존 시간, 즉 (리소스 수명) * 백분율이 결정됩니다.