1

コンテキスト: Cherokee で実行されている APT リポジトリ ミラー サーバーを監視しています。
目標: sources.list にミラーがあるコンピュータの数を知る
方法: "dists/[..]/Release" に対する GET リクエストを追跡する
Debian Wheezy の場合、これは dists/wheezy/Release になります。

一般的なアクセス ログから行を抽出することはできません。ミラーを使用すると、アクセス ログがわずか数日で 2 GB に増加します。いくつの異なる IP が APT ミラーを使用しているかを知りたいだけですが、Perl の正規表現は依然として私にとっては厄介な問題です。

Cherokee にリクエスト基準 (およびその方法) に一致するログ アクセスのみを許可することは可能ですか?

フォールバック ソリューション:どのような種類のリダイレクトで "Release" GET を PHP スクリプトに渡すことができますか (誰が IP アドレスを sha1 ハッシュし、フォルダーにファイル名として入れることができますか? (リダイレクト ループを使用せず、ミラーリング rsync を考慮して、各同期後に誰がこれをリセットする必要があるかを考慮して)

4

1 に答える 1

0

cherokee-admin を使用すると、「dists/[..]/Release」リクエストに一致する動作ルールを追加できます。次に、「vServers/Behavior/Rule Management」に移動し、「Security」タブで「Skip Logging」オプションをチェックして、追加したルールを除くすべてのルールのロギングを無効にします。

「Release」GET を PHP スクリプトに渡すことができるリダイレクトの種類 (IP アドレスを sha1 ハッシュし、フォルダーにファイル名として配置するのは非常に簡単です)。その後、実際の Release ファイルにリダイレクトします。

PHP は X-Sendfile (または X-Accel-Redirect) ヘッダーを送信して、Cherokee に Release ファイルを送信するように指示できます。

于 2013-06-17T13:15:47.670 に答える