読者です 読者をやめる 読者になる 読者になる

プロキシ環境下でElasticsearchにRubyから接続できない

問題

プロキシ環境下で、localhostに立てたElasticsearchに
gem elasticsearchを用いて、Rubyプログラムから接続を試みると、
プロキシサーバーを通して外に接続しに行こうとする orz...

バージョン
  • Ruby 2.1.2p95
  • Elasticsearch 1.3.2
  • elasticsearch(gem) 1.0.4
原因

gem elasticsearchは内部でFaradayを利用している。
そのFaradayは環境変数ENVのhttp_proxyを読み込み、
プロキシ経由のネットワーク接続設定を行っている。
そして、no_proxyの設定を読み取ってくれてない orz...

安易な解決策
require 'elasticsearch'
ENV["http_proxy"] = nil #このプログラムではプロキシを無効化 
client = Elasticsearch::Client.new
p client.info
あるべき姿
  • Linux環境下のFaradayはno_proxyの設定も読みとる ← Windowsではめんどくさそう
  • プロキシ設定はClient.newの時に設定する ← スキ!