これまでの経験がないので、squid
プロキシを設定しました。その唯一の目的は、すべてのLinuxシステム(openSUSE)がインターネットから更新をダウンロードしないようにすることです。
OpenSUSEアップデートツール用にプロキシを簡単に設定できます。 tcpdump
は、他のシステムがプロキシにアクセスし、プロキシがリポジトリにアクセスすることを示しています。
わからないこと:ディストリビューションのアップグレード後、最初のオンラインアップデートは400MiBから700MiBになるはずです(これは、アップデートを開始する前にYaSTが言っていることです)。ただし、squid
ストレージディレクトリには約80MiBのデータしか含まれていません。
access.log
はヒットとミスの両方を示します。なんらかの奇妙な理由でLinuxシステムが異なるサーバーにアクセスする場合でも(DNSに透過しないリダイレクトのようなものはありますか?)、プロキシストレージは少なくとも最大のダウンロードと同じ大きさになると思います。
リポジトリはhttp
ではなくhttps
であるため、プロキシに問題はないはずです。
問題が見つかりました
このリンク in この回答 ここでイカがうまく機能しない理由についての情報を提供します:
パッケージは、複数のミラーに分散されたセグメント化されたダウンロードを使用してダウンロードされます。これにより、squidは多くのキャッシュを実行できなくなります。
私はこのチュートリアルを見つけました: SquidでopenSUSEリポジトリをキャッシュする方法 。
抜粋
ローカルのSquidWebキャッシュをopenSUSEリポジトリおよびopenSUSEネットワークインストールプロセスで機能させる方法。事実上、完全に自律的なローカルのオンデマンドリポジトリミラーを実行する方法。高速ADSLインターネット接続でも、最大60%の節約を簡単に実現できます。
以下は、その記事のステップバイステップの詳細です。
いか
Squid Webプロキシはこのセットアップの重要な要素であるため、Squidのインストールが機能していることが前提条件です。 Squidの設定は、見た目ほど複雑ではありませんが、squidのドキュメントを参照する必要があります。これは、この記事の範囲外です。環境変数http_proxyet alを使用してアクセスを指示することを好むか、または(私のように)透過プロキシを実行するかどうかは、それほど重要ではありません。
注:ここでの設定はSquid 2.7で機能しますが、storeurl_rewrite機能はまだSquid3.xに実装されていないと思います。
jesred
jesredはURLリライタです。それはかなり成熟していますが、完全に機能しています。 ( 元のウェブページ )。 squid 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/jesredstoreurl_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に追加します。これは1つのdelay_poolを定義し、最大帯域幅が1MByte/secのlocalhost(fetcher206がwgetを実行する場所)からのみアクセスできます。
ローカルホストから発信された他のhttp /プロキシトラフィックがある場合は、別の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
イカをリロード
ここまで来たら、イカをリロードします。
squid -k reconfigure
fetcher206
fetcher206は、当面の間、PHPスクリプトです。/usr/binにコピーするだけでインストールできます。同時に実行するwgetの数など、ハードコードされたオプションがいくつかあります。 、ログファイルの名前など。
fetcher206には、systemdサービスユニットもLSBinit-scriptもまだありません。当分の間、あなたは単にそれを以下から始めます:
startproc -s -q /usr/bin/fetcher206