Contents
- リバースプロキシを使う意味
- Apache-1.3.33における設定方法
- Apacheとの共存下で「:9190」がつかない設定
- パスで振り分ける
- ホスト名で振り分ける
- 両方でアクセスできるようにする
- 参照: Apacheマニュアル
- Apache-2.0.54における設定方法
- リバースプロキシの有効化
- ホスト名で振り分けるようにする
- /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」がつかない設定
- http://www.example.com/ ではApacheが、
- http://www.example.com:9190/ ではqwikwebが稼働中のとき、
「:9190」がつかないURLでqwikwebにアクセスさせる方法を2通り紹介する。
いずれの方法もApacheのmod_proxyを使うので、httpd.confに下記の2行を追加する。 (標準のhttpd.confではコメントアウトされているので行頭の「#」を消す)
LoadModule proxy_module libexec/httpd/libproxy.so AddModule mod_proxy.c
パスで振り分ける
- http://www.example.com/qwik/ でアクセスできるように設定する。
httpd.confの中でタグに囲まれていない適当な場所に下記の1行を追加する。 「Section 3: Virtual Hosts」の上あたりに書くのがよいだろう。
ProxyPass /qwik/ http://localhost:9190/
ホスト名で振り分ける
- http://qwik.example.com/ でアクセスできるように設定する。
注意:
- 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