最近は、ハードウェアのコストが安くなり、潤沢なリソースを利用することが多くなりました。
これにより、1つのサーバで1つのアプリケーションを運用するとリソースが余るので、複数のアプリケーションを運用したいが、ドメインは分けたいということがあるのではないでしょうか。
そこで、今回は、1つのサーバ(IP)で複数ドメインを使用することを実現する、名前ベースのVirtualHostという機能を紹介します。
また、Apache単体での利用ではなく、Javaで構築したWebアプリケーションをTomcatで動作させ、ajpプロトコルで連携する方法も組み合わせて紹介します。
DNSの設定
今回は、名前ベースによるVirtualHostですので、1つのIPに対して、複数のドメインを設定します。設定方法は、使用しているDNSサービスの使用方法を確認して下さい。
ドメイン | レコード | 値 |
domainA | A | 192.168.1.2 |
domainB | CNAME | domainA.jp |
もっとドメインを増やす場合は、domainBに倣って追加することができます。
/etc/httpd/conf/httpd.conf の設定
以下の設定がされていることを確認します。
# # Load config files from the config directory "/etc/httpd/conf.d". # Include conf.d/*.conf
# # Use name-based virtual hosting. # NameVirtualHost *:80
/etc/httpd/conf.d/virtualhost.conf の設定
conf.dフォルダに設定ファイルを作成します。ファイル名は拡張子が「conf」であればOKです。適宜、名称を付けましょう。
<VirtualHost *:80> ServerName domainA.jp ProxyRequests Off ProxyPass /applicationName1/ ajp://localhost:8009/applicationName1/ </VirtualHost> <VirtualHost *:80> ServerName domainB.jp ProxyRequests Off ProxyPass /applicationName2/ ajp://localhost:8009/applicationName2/ </VirtualHost>
まとめ
名前ベースのVirtualHostについては、リソースの有効活用という面では有益です。運用についてもサーバ1台を管理すれば良いので手間も省けます。
しかし、冗長性の面からするとサーバ1台の不具合によって、2つのアプリケーションがダウンすることになるため、被害が2倍になることも考慮した上でVirtualHostによる運用を決める必要があると思います。