Contents
  1. リバースプロキシを使う意味
  2. Apache-1.3.33における設定方法
    1. Apacheとの共存下で「:9190」がつかない設定
    2. パスで振り分ける
    3. ホスト名で振り分ける
    4. 両方でアクセスできるようにする
    5. 参照: Apacheマニュアル
  3. Apache-2.0.54における設定方法
    1. リバースプロキシの有効化
    2. ホスト名で振り分けるようにする
      1. /etc/apache2/sites-available/qwik.example.com

Apache下での利用

リバースプロキシを使う意味

qwikWebは通常はポート番号として「9190」を使う。例えばwww.example.comと いうマシンでqwikWebを動かしている場合、

というように「:9190」を後につけてアクセスすることになる。

IPアドレスを電話番号に例えるなら、この「ポート番号」は「内線番号」のよ うなものである。Webは通常「80」番を使うことになっており、特に何も指定 しない場合にはポート番号は80番を指定したことになる。そのため、下記二つ は同じURLの意味となる。

メール送受信で使うSMTPは25番、POPは110番など、プロトコル毎に通常使うポー トが定められている。あくまで「通常」使うものなので、「うちのqwikWebは 9190番だからね」などと、サービス提供者と利用者の間で確認できていれば、 別の番号にす ることもできる。

しかし、環境によってはファイアウォールによって80番以外へのアクセスは遮 断されている場合もある。そのような環境では、ポート9190番へのアクセスを、 サーバ側でポート80番にリダイレクトしてやるといった設定が必要になる。

ここで、ポート80番へのアクセスをサーバ側で別のポートへと接続してやるこ とを、リバースプロキシと呼んでいる。ここではWebサーバとしてApacheを使っ ている際に、そのリバースプロキシを使う設定方法について述べる。

Apache-1.3.33における設定方法

MacOSX-10.3.9 + Apache-1.3.33における設定方法について紹介する。

Apacheとの共存下で「:9190」がつかない設定

「:9190」がつかないURLでqwikwebにアクセスさせる方法を2通り紹介する。

いずれの方法もApacheのmod_proxyを使うので、httpd.confに下記の2行を追加する。 (標準のhttpd.confではコメントアウトされているので行頭の「#」を消す)

 LoadModule proxy_module libexec/httpd/libproxy.so
 AddModule mod_proxy.c

パスで振り分ける

httpd.confの中でタグに囲まれていない適当な場所に下記の1行を追加する。 「Section 3: Virtual Hosts」の上あたりに書くのがよいだろう。

 ProxyPass /qwik/ http://localhost:9190/

ホスト名で振り分ける

注意:

  • Apacheの設定以前に、DNSの設定でqwik.example.comがwww.example.comと同じIPアドレスを指すようになっている必要がある。
  • メインのWebページについても再度VirtualHostとして記載する必要がある。

httpd.confの中でタグに囲まれていない適当な場所に下記の各行を追加する。 「Section 3: Virtual Hosts」の下あたりに書くのがよいだろう。

NameVirtualHost *:80

<VirtualHost *:80>
   ServerName www.example.com
   DocumentRoot /Library/WebServer/Documents
</VirtualHost>

<VirtualHost *:80>
   ServerName qwik.example.com
   ProxyPass / http://localhost:9190/
</VirtualHost>

両方でアクセスできるようにする

冗長ではあるが、上記設定でDocumentRootの次行に「パスで振り分ける」で紹介した設定を挿入することで、

このどちらでもアクセスできるようになる。

参照: Apacheマニュアル

Apache-2.0.54における設定方法

Apache2では機能のモジュール化,バーチャルホストのモジュール化,そしてそれらの 設定の分離化が進んでおり, 他の設定に影響を与えないようにしながら,追加設定がやりやすくなっている.

Debian の場合,設定は /etc/apache2 以下にあるだろう.FreeBSD であれば /usr/local/etc/apache2 にあるだろう.

リバースプロキシの有効化

# a2enmod proxy
# a2enmod proxy_http

ホスト名で振り分けるようにする

http://qwik.example.com/ でアクセスできるように設定する.

注意:

  • Apacheの設定以前に、DNSの設定でqwik.example.comがwww.example.comと同じIPアドレスを指すようになっている必要がある。
    • このとき,qwik.example.com でメールも受け取りたい場合,CNAME で指定してはいけない.必ずAレコードにする
      • でないとqmailなMTAからメールを受け取れないことがある.qmailはMXがCNAMEだと,SMTPではRCPT TOでのメールアドレスをCNAMEでなく,CNAMEが指す実名に書き換えてしまうため.
  • Apache-1.xとは異なり,メインのWebページについては再度VirtualHostとして記載する必要はない.
    • ふつうは /etc/apache2/sites-available/default で設定済みであろう.

Debianであれば /etc/apache2/sites-available/qwik.example.com というファイルに

/etc/apache2/sites-available/qwik.example.com

<VirtualHost 192.168.0.1:80>
ServerName      qwik.example.com
ProxyPass       /                       http://127.0.0.1:9190/
</VirtualHost>

と書く.192.168.0.1 は(外部に公開するサイトなら)実際には外部から参照できる, つまりグローバルIPアドレスである必要がある.

続いてリバースプロキシの設定をする.

<IfModule mod_proxy.c>

       #turning ProxyRequests on and allowing proxying from all may allow
       #spammers to use your proxy to send email.

       ProxyRequests Off

       <Proxy *>
               Order deny,allow
               # Deny from all
               Allow from all
               #Allow from .your_domain.com
       </Proxy>

とする.設定が終わったら,有効化して再起動する.

# a2ensite qwik.example.com
# /etc/init.d/apache2 restart
Last modified: 2006-07-24 Attached files total: 1MB