오징어 캐시-파트 2

Squid는 프록시 및 캐시 서비스 일뿐만 아니라 훨씬 더 많은 작업을 수행 할 수 있습니다. acl (액세스 목록) 관리, 콘텐츠 필터링, 투명 모드 (프록시 방법-프록시 설정에서 구성 할 필요 없음)에서도 SSL 필터링을 수행 할 수 있습니다. 브라우저에서 보면 중간에있는 사람과 같습니다. 그래서 저는 일반적으로 각 부분을 구성하는 방법을 모르기 때문에이 응용 프로그램의 잠재력이 어떻게 낭비되는지 확인합니다.

이제 오징어가하는 흥미로운 일은 캐시입니다. 그 이유는 간단하고 속도와 대역폭을 더 잘 관리하는 것이 가장 중요한 이유입니다. 신중하게 생각하십시오. 1000 분마다 컨설팅하는 회사의 5 명, 공통 페이지, Google, Hotmail, Gmail 등 ... 이미지, 배너, 광고, HTML 콘텐츠를 반복해서 다운로드 할 수 있도록이 모든 것이 정적 인 것입니다. 자주 변경되므로 로컬 네트워크에 저장하고 고려한 구성 내에서 최근 고려한 사본을 제공하는 것이 좋습니다.

방법은 다음과 같습니다.

refresh_pattern [-i] regex min percent max [options]

내가 항상 말했듯이 모든 것을 믿지 마십시오. 그러므로 공식 출처에서 읽어 보시길 권합니다. 이 문장의 매뉴얼을 읽어 보시기 바랍니다. 여기

문장 새로고침_패턴 캐시에 새 매개 변수를 추가하는 것은 항상 레이블이됩니다.

중요한 것은 캐시 목록이 순차적이어야합니다. 객체와 일치하는 첫 번째 항목과 일치하면 다른 규칙을 계속 읽지 않기 때문입니다.

정규식은 대소 문자를 구분하므로 flv는 FLV와 동일하지 않지만 원하는 경우 옵션을 사용하여이를 피할 수 있습니다. -i . 그러면 이렇게 보일 것입니다 새로 고침 _ 패턴 -i

'분': 객체가 "최근 또는 최신"으로 간주되고 명시적인 레이블 "만료 됨"이없는 경우 시간 (분)입니다. 기본적으로 squid는 일부 동적 응용 프로그램이 이상하게 작동 할 수있는 이유 때문에 0을 권장합니다. 순수 blah blah blah, 실제로이 값은 캐시하려는 요소에 유용하고 효과적인 것으로 간주되는 숫자 여야합니다. 예 : jpg, 1440 분 (하루)은 나에게 괜찮아 보이지만 페이지에서 게시물의 이미지가 5 분마다 변경되는 것과는 다릅니다.

'퍼센트' "최근 또는 최신"으로 간주되는 객체의 수명 (마지막 수정 이후)의 백분율입니다. 웹 페이지에 적용된 마지막 수정 사항을 확인하기 위해 지속적으로 다시로드하거나 새로 고침을 수행하면 squid가 이미 완료 한 시간의 50 %를 고려할 수 있습니다. y 최대, 인터넷에서 해당 개체를 다시 다운로드하고 새 복사본을 제공합니다.

'맥스' 한도 이상 또는 같음 '분' 개체가«최근 또는 최신»으로 간주되는 기간, 일부 페이지의 이미지가 사용자에 의해 한 번만 참조되었다고 가정하고 해당 개체가 이미 시간에 도달했다고 가정합니다. ,하지만 최대, 그런 다음 다시 쿼리하면 캐시 사본이 전달됩니다.

Options:
override-expire
override-lastmod
reload-into-ims
ignore-reload
ignore-no-store
ignore-private
max-stale=NN
refresh-ims
store-stale

이러한 옵션은 캐시의 효과적인 사용을 보장하기 위해 주로 언어 및 프로토콜에서 미리 설정된 동작을 무시하도록 만들어졌습니다.

override-expire

서버가 더 짧은 만료 시간 (예 : 헤더 또는 Cache-Control : max-age)을 보냈더라도 객체의 최소 시간을 적용합니다. 이렇게하면 "HTTP 표준 위반"과 같은 "경고"가 표시되지만 무시할 수있는 경고 일뿐입니다. 이제 서버가 보내는 시간이 더 길면 squid는 서버의 시간 (만료)이 걸립니다.

override-lastmod

항목이 최근에 수정 된 경우에도 항목의 최소 시간을 강화합니다.

reload-into-ims

간단한 설명은 새로 고침 버튼을 누르거나 캐시 없음 요청을 할 때 squid가 "이후 수정"되지 않았거나 페이지에 "헤더"가없는 경우 캐시를 전달하는 것을 방지한다는 것입니다.

ignore-reload

페이지 새로 고침 또는 새로 고침 버튼을 누르는 사용자의 작업을 무시합니다.

ignore-no-store

캐시하지 않을 헤더의 모든 규칙 (예 : 동영상)을 무시합니다.

ignore-private

캐시하지 않아야하는 비공개 콘텐츠 헤더의 모든 규칙 (예 : facebook 콘텐츠)을 무시합니다.

refresh-ims

Squid는 서버에 접속하여 개체가 최신인지 확인합니다. 그렇다면 캐시를 전달합니다.

store-stale

Squid는 이러한 모든 응답을 저장합니다. 만료 날짜가 없더라도 일반적으로 재사용 할 수 없기 때문에 매우 비실용적입니다. 활성화하려면 max-stale = NN을 선언해야합니다.

max-stale=NN

위를 활성화 한 경우 해당 응답 또는 요인에 대한 최대 수명을 선언해야합니다. Squid는이 스타일의 물건을 배달하지 않지만 소스를 통해 검증 할 수 있습니다.

다음은 논의한 값에 따라 "FRESH"상태가 작동하는 방식에 대한 표입니다.

  • 만료되면 FRESH> 지금, 그렇지 않으면 STALE
  • 연령> 최대 인 경우 STALE
  • lm-factor <퍼센트이면 FRESH, 그렇지 않으면 STALE
  • 연령 <min, 그렇지 않으면 STALE이면 FRESH

다음은 많은 디스크 공간, 좋은 장비 및 좋은 대역폭을 가진 특정 회사의 구성 예입니다.

refresh_pattern -i \.(3gp|7z|ace|asx|bin|deb|divx|dvr-ms|ram|rpm|exe|inc|cab|qt)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims

refresh_pattern -i \.(rar|jar|gz|tgz|bz2|iso|m1v|m2(v|p)|mo(d|v)|arj|lha|lzh|zip|tar)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims

refresh_pattern -i \.(jp(e?g|e|2)|gif|pn[pg]|bm?|tiff?|ico|swf|dat|ad|txt|dll)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims

refresh_pattern -i \.(avi|ac4|mp(e?g|a|e|1|2|3|4)|mk(a|v)|ms(i|u|p)|og(x|v|a|g)|rm|r(a|p)m|snd|vob)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims

refresh_pattern -i \.(pp(t?x)|s|t)|pdf|rtf|wax|wm(a|v)|wmx|wpl|cb(r|z|t)|xl(s?x)|do(c?x)|flv|x-flv)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims
cache_mem 8092 MB

이제 캐시는 하드 디스크에있을뿐만 아니라 램 메모리도 캐시 할 수 있습니다.이 값은 각 오징어 프로세스에 대한 것이므로 다음과 같은 리디렉터를 사용할 때 고려해야합니다. 오징어 가드

maximum_object_size_in_memory 1024 KB

squid가 RAM에 저장할 메모리에있는 개체의 최대 크기입니다. 최소값을 선언 할 수도 있습니다.


memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF

보시다시피 하나는 RAM 메모리의 캐시와 하드 디스크의 캐시 교체 정책입니다. GDSF 및 LFUDA 정책에는 두 가지가 있습니다. 첫 번째는 많은 작은 개체를 손에 들고 캐시 적중률을 높이고, 두 번째는 그 반대를 검색하고, 크기에 관계없이 개체를 캐시에 유지합니다.

당신이 지금 저에게 물어 보는 질문은 제가 어떤 용도로 사용합니까? 글쎄, 만약 당신이 당신의 환경에서 그들은 많은 쿼리를 수행하고 반대로 그들이 많은 다운로드와 적은 LFUDA 쿼리를 수행한다면 GDSF를 사용하는 다운로드는 거의 없다고 생각한다면. 내가 할 때 LFUDA를 추천한다면 1TB의 디스크에 캐시하는 것이 더 효율적입니다.

maximum_object_size 4 MB

개체를 저장해야하는 최대 크기

cache_dir aufs /media/proxy249/cache 100 16 256

캐시가 저장 될 위치, 여기서주의해야 할 점은 ufs, aufs 또는 diskd를 사용하는 경우 세 가지 모두 거의 동일하게 작동하는 경우, 차이점은 aufs 및 diskd가 별도의 프로세스와 함께 작동하여 하드 디스크에서 I / O 작업을 수행하고 이러한 작업 중에 squid 프로세스가 중단되는 것을 방지하고이 작업에 사용할 스레드 수를 지정할 수 있습니다. 좋은 팀이 있다면 aufs를 추천합니다.

크기는 100 (메가 바이트)이며, 100000 개를 넣을 수 있으며 거의 ​​100GB가 사용 가능 여부에 따라 다릅니다. 16은 폴더 수이고 256은 하위 폴더 수입니다. 디스크 속도와 보유한 리소스의 양에 따라 두 값을 모두 사용할 수 있습니다.


cache_swap_low 90
cache_swap_high 95

이러한 옵션은 개체 교체 값이며 squid에 따른 워터 마크의 최소값과 최대 값입니다.이 숫자는 백분율 (%)로 표시되며 매우 작은 캐시에서 현재 5 %는 초당 300 개 개체라고 가정하겠습니다. 하지만 매우 큰 캐시에서는 수천 MB에 대해 이야기 할 것입니다.

글쎄, 내가 당신을 남겨두고, 이것은 지금, 코멘트 또한 squid 3.5 이상에서 https (SSL) 페이지를 캐시 및 필터링 할 수 없다고 말한 사람들을 고려해보십시오. 곧 가져 오겠습니다.이 블로그를 계속 지켜봐주십시오.


11 코멘트, 당신의 것을 남겨주세요

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   잉. 호세 앨버트

    첫 번째 부분을 훌륭하게 보완합니다!

    Squid에 대한 많은 문헌이 있지만 각각의 설명과 가능한 실제 사용 시나리오와 함께 가장 실용적인 옵션의 요점에 도달하는 것이 항상 가까운 것은 아닙니다!

    언제나처럼, 나는 그것의 세 번째 부분을 고대합니다!

    1.    브로디달

      귀하의 의견에 감사드립니다. 정확하고 모든 관련 요소에 대한 간결한 설명 및 모범 사례 설정입니다. 그러나 나는 항상 당신의 의견과 자신의 경험에주의를 기울입니다.

  2.   Artus

    안녕하세요, Windows 업데이트 및 바이러스 백신에 문제가 있습니다. 내 기관에 약 120 대의 PC가 있습니다. 이 상황을 개선하는 방법에 대한 아이디어를 주시겠습니까? 도움을 주셔서 감사하고 기사에 축하드립니다.

    1.    브로디달

      안녕하세요, 참여해 주셔서 감사합니다. .. 제가 도와 드릴 수 있다면 문제가 무엇인지 잘 설명해주세요. 업데이트를 다운로드 할 수 없습니까? 인터넷 옵션에 프록시를 설정하고 브라우저의 프록시 옵션에도 동일하게 설정 했습니까? 포트를 확인 했습니까? 아니면 해당 업데이트를 캐시 하시겠습니까?

      1.    Artus

        내가 필요한 것은 컴퓨터가 Windows 또는 바이러스 백신 업데이트를 다운로드 할 때마다 약 한 달 동안 캐시에 유지된다는 것입니다. 이렇게하면 매일 아침부터 대역폭을 절약하고 싶습니다. 모든 컴퓨터가 각각 동일한 업데이트를 다운로드하기 시작하고 연결이 포화됩니다.

        당신의 도움을 주셔서 감사합니다.

    2.    마리오

      Squid가있는 서버는 암호화되지 않은 간단한 http 다운로드이기 때문에 가능합니다. 캐시에 대한 다른 솔루션은 회사에서 일반적으로 사용되는 WSUS 및 Altiris입니다.

      1.    Artus

        감사합니다 마리오 내가 명심할 것입니다.

    3.    브로디달

      알겠습니다.이 링크를 확인하세요. http://wiki.squid-cache.org/SquidFaq/WindowsUpdate. 바이러스 백신을 캐시하려면 업데이트가 다운로드되는 위치와 확장자 (예 : .exe)를 알고 캐시해야합니다.

  3.   Artus

    당신의 도움을 주셔서 감사합니다.

  4.   에릭

    좋은 아침 친구 여러분, 제 사건을 지원해 주시겠습니까? 데비안 2.7에 squid 9 .STABLE6가 있고 모든 것이 구성되어 있고 10 PC 환경에 마운트 할 때 일반 메일을 받고 문제는 90 PC에 마운트하면 몇 초만 작동하고 거기에서 모두가 그들은 인터넷없이 남겨집니다. 나를 지원해 주시겠습니까?

  5.   호세 리 바스

    훌륭한 설명, 기본적이지만 매우 명확하고 정확합니다. 개인적으로 제가 읽을 수 있었던 최고의 설명입니다.
    질문이 있습니다. apk 및 xapk와 같은 Android 애플리케이션을 캐시 할 수 있습니까?
    그리고 파일의 출처가 무엇이든 동적 캐시를 구성하는 올바른 방법은 무엇입니까?
    pfSense 2.4.5를 사용합니다.