Hatena::ブログ(Diary)

Solr, Python, MacBook Air in Kameido RSSフィード

2009-04-28

[] リバースプロクシの設定方法

Apacheのリバースプロクシは、ファイヤーウォールの内側にあるサーバの公開や、システム拡張等につかえる技術です。

今回は、公開ネットワークにあるhostAのApacheを使って非公開ネットワークにあるhostBのWebページを公開しました

以下手順です。

  1. 運がよければ「1. リバースプロクシの設定」だけをすればOKです。RedHatインストール済みのマシンを使っている場合などはこれに当てはまるかもしれません。
  2. ちょっとだけ運が悪いと「2. proxy_moduleとproxy_http_moduleをロードする方法」までやる必要がありますが、ここまでは大した手間ではありません。
  3. 最悪なのは「3. モジュールproxy_moduleとproxy_http_moduleのインストール」まで必要になる場合です。Apacheソースダウンロードするところから始まります。お腹がすいている場合は何か食べてから落ち着いて始めましょう。

1. リバースプロクシの設定

hostAのhttpd.confに以下の設定をします。

これでブラウザからhttp://hostA/hogeアクセスするとhttp://hostB:8080/hogeが表示されます。

<Location /hoge>
 ProxyPass http://hostB:8080/hoge
 ProxyPassReverse http://hostB:8080/hoge
</Location>

なお、この設定を使うためにはproxy_moduleとproxy_http_moduleの2つのモジュールが必要です。

ロードされているかどうかを確かめるにはapachectl -Mを実行します

 % apachectl -M

     ・
     ・
     ・
 proxy_module (shared)
 proxy_http_module (shared)

2. proxy_moduleとproxy_http_moduleをロードする方法

ロードされていなければhttpd.confに以下を追記しましょう。

 LoadModule proxy_module modules/mod_proxy.so
 LoadModule proxy_http_module modules/mod_proxy_http.so

3. モジュールproxy_moduleとproxy_http_moduleのインストール

Apacheの機動でエラーが出る場合にはproxy_moduleとproxy_http_moduleがまだインストールされていない(modulesディレクトリにこれらのファイルがない)可能性があります。この場合には別途インストールが必要です。


  • Apacheのバージョンを確認する

モジュールのインストールにはApacheソースが必要になるのですが、その前に現在動いているApacheのバージョンを確認します。Apacheのバージョンは以下で確認できます。

% httpd -version
Server version: Apache/2.2.11 (Unix)
Server built:   Mar 21 2009 14:32:01

適当なサイトから現在動いているApacheのバージョンと同じものをダウンロードします。解凍もします。

% wget http://www.meisei-u.ac.jp/mirror/apache/httpd/httpd-2.2.11.tar.gz
% tar xvfz httpd-2.2.11.tar.gz

# su
# cd httpd-2.2.11/modules/proxy
# /usr/local/apache2/bin/apxs -i -c mod_proxy.c proxy_util.c
# /usr/local/apache2/bin/apxs -i -c mod_proxy_http.c proxy_util.c

後はApache再起動すれば大丈夫なはず

# apachectl restart

ではでは

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/knaka20blue/20090428/1240901156
リンク元