Fess CrawlerのHttpClient 5でSOCKS5プロキシを設定する

Fess CrawlerのHTTPクライアントに、SOCKS5プロキシを指定する機能が追加されました。対象はHc5HttpClientです。

ホストとポートを両方指定する

初期状態ではsocksProxyHostもsocksProxyPortも未設定で、SOCKSプロキシを使いません。両方を設定した場合だけ、接続マネージャーにSOCKSプロキシを渡します。ポートだけの指定では有効にならず、1080などが自動補完されるわけでもありません。

Hc5HttpClientを直接生成・設定するJavaアプリケーションでは、初期化前に次のように指定します。1080は例で、実際のプロキシの待受ポートへ変更します。

Hc5HttpClient client = new Hc5HttpClient();
client.setSocksProxyHost("proxy.internal.example");
client.setSocksProxyPort(1080);
// この後、アプリケーション側の通常の初期化・実行処理を行う

初期化パラメーターマップを使う場合のキーもsocksProxyHostとsocksProxyPortです。HTTPプロキシのproxyHost・proxyPortとは別の指定です。Fess管理画面にSOCKS専用入力欄を追加するPRではないため、画面にこの名前を入力すればそのまま使えるとは判断しません。Fessへ組み込む場合は、実際にHc5HttpClientが選ばれ、パラメーターが渡る構成かを確認します。

認証と名前解決の制限

SOCKS認証には対応していません。また、宛先ホスト名はクローラー側で解決し、プロキシへはIPアドレスを渡します。プロキシ側だけが社内ホスト名を解決できる構成や、リモートDNSを前提とする接続では、この設定だけでは届きません。

Hc4HttpClientの動作は変わりません。導入時は小さなHTTP取得でプロキシを通ること、SOCKSを未設定に戻した場合の経路、クローラー環境からのDNS解決を確認します。PRでは組み込みSOCKS5サーバーを使った中継テストが報告されていますが、本記事では実環境のFessクロールを検証したとはしていません。

関連PR

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です