경험이 없어서 그냥 squid
프록시만 설정했습니다. 유일한 목적은 모든 Linux 시스템(openSUSE)이 인터넷에서 업데이트를 다운로드하지 못하도록 방지하는 것입니다.
openSUSE 업데이트 도구에 대해 에이전트를 쉽게 구성할 수 있습니다. tcpdump
에이전트에 액세스하는 다른 시스템과 저장소에 액세스하는 에이전트를 표시합니다.
내가 이해하지 못하는 점은 distro 업그레이드 후 첫 번째 온라인 업데이트가 400MiB에서 700MiB여야 한다는 것입니다(업데이트를 시작하기 전에 YaST가 말한 내용입니다). 그러나 squid
스토리지 디렉터리에는 약 80MiB의 데이터만 포함되어 있습니다.
이 access.log
쇼는 성공과 실패를 공유했습니다. 이상한 이유로 Linux 시스템이 다른 서버에 액세스하더라도(일종의 DNS 불투명 리디렉션이 있습니까?) 프록시 저장소는 적어도 최대 다운로드 크기만큼 클 것으로 예상됩니다.
저장소는 이지만 http
그렇지 않으므로 https
프록시에 문제가 있어서는 안 됩니다.
문제 발견
이 링크존재하다이 답변오징어가 제대로 작동하지 않는 이유에 대한 정보는 여기에 제공됩니다.
패키지는 여러 미러에 분산된 분할된 다운로드를 통해 다운로드되므로 Squid가 광범위한 캐싱을 수행하는 것을 방지합니다.
답변1
이 튜토리얼을 찾았습니다.Squid를 사용하여 openSUSE 저장소를 캐시하는 방법.
발췌
openSUSE 저장소 및 openSUSE 네트워크 설치 프로세스에서 로컬 Squid 웹 캐시를 사용하는 방법. 완전히 자율적인 로컬 주문형 저장소 미러를 실제로 실행하는 방법. 고속 ADSL 인터넷 연결을 사용하더라도 최대 60%까지 쉽게 절약할 수 있습니다.
다음은 기사의 단계별 세부정보입니다.
단계별로
오징어
Squid 웹 프록시는 이 설정의 핵심 요소이므로 유효한 Squid 설치가 전제 조건입니다. Squid를 설정하는 것은 보기만큼 복잡하지는 않지만 Squid 문서를 참조해야 하며 이 문서의 범위를 벗어납니다. http_proxy와 같은 환경 변수를 사용하여 직접 액세스를 선호하는지 아니면 (저처럼) 투명한 프록시를 실행하는 것을 선호하는지 여부는 실제로 중요하지 않습니다.
노트:여기 설정은 Squid 2.7에 대한 것입니다. Storeurl_rewrite 기능은 Squid 3.x에서 아직 구현되지 않은 것 같습니다.
제스 레드
jesred는 URL 재작성기입니다. 꽤 성숙하면서도 완벽하게 기능합니다. (원본 웹페이지). 완전히 호환되도록 몇 가지 변경을 해야 했습니다.오징어 2.7:
현재는 패키징되어 있지 않으므로 처음부터 새로 빌드해야 합니다.
tar xzvf <tarball> cd jesred-1.3 make
설치: 완료되면 jesred 바이너리를
/usr/local/bin
원하는 바이너리 위치에 복사합니다.jesred의 구성 파일:
/etc/squid/jesred.conf
allow = /etc/squid/redirector.acl rules = /etc/squid/opensuse-redirect.rules redirect_log = /var/log/squid/redirect.log rewrite_log = /var/log/squid/rewrite.log
리라이터가 처리해야 하는 클라이언트의 요청을 제어 할
/etc/squid/redirector.acl
수 있지만 실제로는 Squid의 ACL 및 storeurl_access 지시어를 사용하여 제어하는 것이 더 쉽다는 것을 알았으므로 모든 클라이언트에 대해 이를 활성화합니다.# rewrite all URLs from 0.0.0.0/0
/etc/squid/squid.conf
/etc/squid/squid.conf
구성: storeurl_rewrite_program /usr/bin/jesred storeurl_rewrite_children 5 에 다음 줄을 추가합니다.acl metalink req_mime_type application/metalink4+xml storeurl_access deny metalink storeurl_access allow localnet storeurl_access allow localhost acl localhost src 127.0.0.0/8 acl localnet src 192.168.0.0/16
fetcher206 로그 파일
다음과 같이 수정합니다
/etc/squid/squid./conf
.logformat f206 %{%Y-%m-%dT%H:%M:%S}tl %Ss/%03Hs %rm %ru %mt access_log /var/log/squid/fetch206.log f206
이 로그는 fetcher206에 의해 읽혀집니다.
너무 커지는 것을 방지하려면 다음을 추가하십시오
/etc/logrotate.d/
./var/log/squid/fetch206.log { compress dateext maxage 365 rotate 5 size=+4M notifempty missingok create 640 squid root sharedscripts postrotate /etc/init.d/squid reload endscript }
오징어 지연 수영장
이는 선택적인 단계입니다. 사용 가능한 다운스트림 대역폭에 따라 fetcher206이 저장소 파일을 검색하는 데 사용하는 것을 제한할 수 있습니다. 이는 방지합니다
- 현재 설치 속도를 낮추고
- 인터넷 연결 남용
delay_pools 1 delay_class 1 1 delay_access 1 allow localhost delay_parameters 1 1000000/1000000
위 내용을 /etc/squid/squid.conf에 추가합니다. 이는 최대 대역폭이 1MByte/sec인 로컬 호스트(fetcher206이 wget을 실행할 위치)에서만 액세스할 수 있는 지연 풀을 정의합니다.
localhost에서 오는 다른 http/proxy 트래픽이 있는 경우 다른 127.0.0.x 주소를 추가하고 fetcher206에만 사용할 수 있습니다.
미러 데이터베이스
사용 가능한 openSUSE 이미지의 최신 목록이 필요합니다. 이는 mirrors.opensuse.org에서 검색할 수 있습니다. 현재 XSL을 사용하여 HTML 페이지를 구문 분석하고 있지만 MirrorBrain에서 올바른 형식의 목록으로 직접 이동하고 싶습니다.
mkdir -p /var/lib/fetcher206 cp tarball/Makefile.mirrors /var/lib/fetcher206/Makefile cp tarball/extract* /var/lib/fetcher206/ make -C /var/lib/fetcher206 cp tarball/opensuse_mirrors.cron /etc/cron.d/opensuse_mirrors
오징어를 다시 장전하다
여기까지 왔으면 이제 Squidward를 다시 로드할 시간입니다.
squid -k reconfigure
게터 206
fetcher206은 현재 PHP 스크립트입니다. /usr/bin에 복사해서 설치하면 됩니다. 동시에 실행할 wget 수, 로그 파일 이름 등과 같은 일부 하드 코딩된 옵션이 있습니다.
fetcher206에는 아직 시스템 서비스 유닛이나 LSB 초기화 스크립트가 없습니다. 지금은 다음부터 시작하면 됩니다.
startproc -s -q /usr/bin/fetcher206