2015-01-30 2 views
0

일부 캐시 된 파일의 중복을 방지하기 위해 프록시를 구성하려고합니다. 일부 사이트는 URL 끝에 쿼리 ​​문자열을 추가하므로 파일이 여러 번 캐시됩니다. 예 :Squid StoreId 다시 작성

나는 등 그런에 storeId에 대한 규칙을 다시 만들 싶습니다

^http:\/\/download\.oracle\.com\/otn\-pub\/java\/([a-zA-Z0-9\/\.\-\_]+\.(tar\.gz)) http://download.oracle.com/otn-pub/java/$1 

하지만 수행하는 방법에 대한 발견 documention을 have'nt 그.

답변

1

오랜 연구 끝에 제 질문에 대한 답변을 찾았습니다. 나는 다른 사람의 경우 같은 질문이 있으면 여기에 적는다.

우선 Squid 3.4를 설치하십시오. StoreId가 처음으로 마녀를 지원합니다. 둘째, STOREID 설명서를 읽은 후 :

과 많은 wiki.squid-cache.org/Features/StoreID/DB

  • 을 wiki.squid-cache.org/Features/StoreID google search이 perl 프로그램을 찾았습니다 http://pastebin.ca/2422099. 데이터베이스 파일을 첫 번째 인수로 사용하기 전에 이전에 두 번째 링크에서 예제를 찾을 수 있습니다. 파일에서 나는 위와 같이 선이 있었다 :

    ^http:\/\/download\.oracle\.com\/otn\-pub\/java\/([a-zA-Z0-9\/\.\-\_]+\.(tar\.gz)) http://download.oracle.com/otn-pub/java/$1 
    

    셋째, 내 이는 squid.conf에서, 나는이 줄을했다 : store_id_program가에서와 펄 파일의 경로가

    store_id_program /usr/local/squid/store-id.pl /usr/local/squid/store_id_db 
    store_id_children 5 startup=1 
    

    입니다 데이터베이스 파일을 인수로 지정하십시오.
    store_id_children은 프로그램에 허용 된 하위 프로세스의 수를 나타내며 처음부터 최대 5, 1입니다. 쿼리 문자열 캐싱 URL을 허용하는

    refresh_pattern -i (/cgi-bin/|\?) 0  0%  0 
    

    refresh_pattern -i cgi-bin  0  0%  0 
    

    로 : 같은 기본적인 squid.conf에서

    나는이 줄을 교체합니다. 그냥 트릭, DB를 파일에, 당신이 컬럼에 있어야합니다 분리 :

    마지막으로, 나는 store-id.pl이 '의 X의 허락 PS이 도움 :)

    희망이 있는지 확인 표 (공백이 아닌). 확실히이 명령을 사용할 수 있습니다 (문서에서 찾기) :

    cat dbfile | sed -r -e 's/\s+/\t/g' |sed '/^\#/d' >cleaned_db_file