概要
オープンソース全文検索サーバー Fess を proxy配下で動作させた時に、軽くハマったのでメモ。
結論
proxy配下のサーバーでFessを利用するときは、管理画面「クロール設定」の「設定パラメータ」に以下の設定を加える だけ で動作する。
client.proxyHost=プロキシサーバー名(ex. 192.168.1.1)
client.proxyPort=プロキシサーバーのポート(ex. 8080)
公式ドキュメント:クローラ関連の設定
環境
- Docker version 18.09.0
- docker-compose version 1.23.1
- Fess 12.3 の Dockerイメージを使用。
ハマりポイント:環境変数 http_proxy の設定をしてはいけない
proxy配下でdockerを利用してコンテナを立ち上げる際、コンテナ内からproxy外へのアクセスをするために通常は環境変数http_proxy
を設定します。しかし、本ケースでは、これを してはいけません 。
例えばdocker-composeを使用する場合は、environment
でhttp_proxy
およびhttps_proxy
以下のようなdocker-compose.yml
となります。
version: "3"
services:
fess:
image: codelibs/fess:12.3
# 以下は、設定してはいけない
# environment:
# http_proxy: http://xxx.xx.xxx.x:xxxx/
# https_proxy: https://xxx.xx.xxx.x:xxxx/
ports:
- "8080:8080"
環境変数http_proxy
を設定すると、初回起動時にFessに内包されているElasticsearchでエラーが発生し、サービス利用ができません。
一方で、webクローラーを動かすためにプロキシが必要。
そういう場合は、プロキシ設定は環境変数で設定せず、起動後に管理画面へアクセス・ログインしwebクローラー設定での設定が必要となるわけです。