Squid のエラーページの画像はどこから配信されるのか
ブラウザの URL とプロキシサーバーのローカルファイルシステム上のパスを切り分けて、Squid のエラーページで画像が表示されない問題を解決します。
プロキシサーバーにロゴファイルは存在します。Squid はそれを読めます。それでもブラウザには壊れた画像が表示されます。ファイルの権限を変えても、間違った URL へのリクエストは直りません。
カスタムのエラーテンプレートに src="images/logo.png" が含まれている場合、ブラウザはその参照を文書の URL コンテキストで解決します。Squid サーバーのディスク上で近くの images ディレクトリを探すわけではありません。ファイルを別の Web サーバーのドキュメントルートに置いても、Squid が自動的に配信するようにはなりません。
Squid 5–7 では、error_directory がカスタムのエラーテンプレートを選び、icon_directory がアイコンの保存場所を示します。Squid の内部アイコン URL は /squid-internal-static/icons/ というパスを使います。Unix のファイルシステムパスを HTML の画像アドレスとして扱うのではなく、インストールされたバージョンのリソース配置に従ってください。
ブラウザが実際に出した画像リクエストを調べます。ホスト名、パス、ステータス、選択された経路を見れば、ブラウザが Squid に内部リソースを要求したのか、別の画像ホストに接続したのか、ブロックされたサイト上の無関係なパスを要求したのかが分かります。
画像が承認済みの内部 Web サーバーにある場合は、到達可能なリソース URL を使い、アクセスルールを考慮します。Squid の内部アセットに属する場合は、インストールされたアセットの場所と、そのリクエストを処理するリスナーを確認します。
エラーメッセージは画像がなくても読めるようにしておきます。別の失敗したネットワークリクエストに依存する診断ページは、読み手に必要な説明を隠してしまうことがあります。