経験がなく、ただsquid
プロキシだけを設定しました。唯一の目的は、すべてのLinuxシステム(openSUSE)がインターネットからアップデートをダウンロードするのを防ぐことです。
openSUSEアップデートツール用にエージェントを簡単に設定できます。tcpdump
エージェントにアクセスする他のシステムと、リポジトリにアクセスするエージェントを表示します。
私が理解していないのは、Distroアップグレード後の最初のオンラインアップデートが400MiBから700MiBでなければならないことです(アップデートを開始する前にYaSTが言ったことです)。ただし、squid
ストレージディレクトリには約80MiBのデータしか含まれていません。
このaccess.log
ショーは成功と失敗を共有しました。奇妙な理由で、Linuxシステムが他のサーバーにアクセスしても(どのようなDNS不透明リダイレクトがありますか?)、プロキシストアは少なくとも最大ダウンロードサイズと同じくらい大きいと予想されます。
リポジトリはですが、http
そうではないため、https
プロキシに問題があってはなりません。
問題発見
このリンク存在するこの回答イカが正しく機能しない理由についての情報はここにあります。
パッケージは複数のミラーに分散された分割ダウンロードを介してダウンロードされるため、Squidが広範なキャッシュを実行するのを防ぎます。
答え1
このチュートリアルを見つけました。Squidを使用してopenSUSEリポジトリをキャッシュする方法。
抜粋
openSUSEリポジトリとopenSUSEネットワークインストールプロセスでローカルSquid Webキャッシュを使用する方法。完全に自律的なローカルオンデマンドストレージミラーを実際に実行する方法。高速ADSLインターネット接続を使用しても、最大60%まで簡単に節約できます。
以下は記事の段階的な詳細です。
段階的に
イカ
Squid Webプロキシはこの設定の重要な要素であるため、有効なSquidインストールは前提条件です。 Squidの設定はビューほど複雑ではありませんが、Squidドキュメントを参照する必要があり、このドキュメントの範囲外です。 http_proxyのような環境変数を使って直接アクセスを好むか、(私のように)透過的なプロキシを実行することを好むかどうかは実際には重要ではありません。
メモ:ここの設定はSquid 2.7用です。 Storeurl_rewrite 機能は Squid 3.x ではまだ実装されていないようです。
ジェスレッド
jesredはURLリライトです。かなり成熟しながらも完璧に機能します。 (元のWebページ)。完全に互換性があるようにいくつかの変更が必要でした。イカ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