コンテンツにスキップ

PCCCacheLink

サーバー: pccs3
サービス名: PCCCache

内部構成Link

cacherrequesterの2つを使って構成している。

cacherはnginx、requesterは自作のGoアプリケーション。

リクエストはまずcacherに届き、nginxがキャッシュがないか確認する。

キャッシュがあればcacherがキャッシュを返して終わり。
なければrequesterにリクエストが転送される。

requesterはPCCProxyを通って上流にさらにリクエストを行う。

cacherから直接上流にリクエストしないのは、nginxがプロキシに対応していないため。

上流からのレスポンスがContent-type: application/atom+xml(≒ChocolateyのAPIコール)でなければ、結果はそのままrequesterからcacherに渡される。

もし上流からのレスポンスがContent-type: application/atom+xml(≒ChocolateyのAPIコール)であれば、データ内に転送先URLがないか確認し、あればすべて転送元URLに書き換えた後に渡される。

これは、ChocolateyがダウンロードURLをXML内に記述しており、書き換えないとPCCCacheを通らずダウンロードしようとしてしまうための措置。