イメージ図
・1つのwebサーバでアプリを2つ動かす
・2つのアプリのホスト名は別にする
・Tomcatから静的コンテンツを参照する
Apache側の設定
①バーチャルホストの設定ファイルを読み込む
C:\Apache24\conf\httpd.conf
②バーチャルホストの設定ファイルを編集する
C:\Apache24\conf\extra\httpd-vhosts.conf
<VirtualHost *:80> ServerAdmin webmaster@dev1.example.com DocumentRoot "C:/Apache24/htdocs/dev1" ServerName dev1.example.com ErrorLog "logs/dev1/error.log" CustomLog "logs/dev1/access.log" common ProxyPass /demo ajp://localhost:8009/demo ProxyPassReverse /demo ajp://localhost:8009/demo </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@dev2.example.com DocumentRoot "${SRVROOT}/htdocs/dev2" ServerName dev2.example.com ErrorLog "logs/dev2/error.log" CustomLog "logs/dev2/access.log" common ProxyPass /test ajp://localhost:8009/test ProxyPassReverse /test ajp://localhost:8009/test </VirtualHost>
③ログの格納フォルダを作成する
※httpd-vhosts.confで指定した場所
C:\Apache24\logs
④静的コンテンツの格納フォルダを作成する
※httpd-vhosts.confで指定した場所
C:\Apache24\htdocs
Tomcatから参照できることを確認するために画像ファイルを格納しておく
⑤hostsファイルにServerNameを記載する
C:\Windows\System32\drivers\etc
Tomcat側の設定
①Server.xmlにajpの設定、バーチャルホストの設定を記載する
<Server port="8005" shutdown="SHUTDOWN"> <Service name="Catalina"> <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector protocol="AJP/1.3" address="::1" port="8009" redirectPort="8443" maxParameterCount="1000" secretRequired = "false" /> <Engine name="Catalina" defaultHost="localhost"> <Host name="app1.example.com" appBase="/webapps/app1" unpackWARs="true" autoDeploy="true"> </Host> <Host name="app2.example.com" appBase="/webapps/app2" unpackWARs="true" autoDeploy="true"> </Host> </Engine> </Service> </Server>
③Apacheの静的コンテンツを参照する
動作確認
ApacheとTomcatを起動し、URLを実行する
http://app1.example.com/demo/
http://app2.example.com/test/