サーバ環境は以下の通りで、apacheはapt-getによりインストールした。UbuntuでApacheをapt-getによりインストールした場合、Ubuntu流のディレクトリ構成となるらしく、ここでの解説はこのディレクトリ構成をもとにしている。Wildflyはhttp://www.wildfly.org/よりダウンロードして適当なディレクトリに解凍してある。また、ApacheとWildflyは同一パソコン上にある。
- Ubuntu server 12.04 LTS
- Apache 2.2.22
- Wildfly-8.0.0.Final
手順1:Apacheにリバースプロキシを設定
Apacheにリバースプロキシを設定するために以下のコマンドを実行してmod_proxyとmod_proxy_ajp を有効化する。
sudo a2enmod proxy
sudo a2enmod proxy_ajp
pacheにmod_proxyとmod_proxy_ajp が設定されているかを確認するために「/etc/apache2/mods-enable」ディレクトリ内に以下のシンボリックリンクがあるかを確認する。
- proxy.conf
- proxy.load
- proxy_ajp.load
ls /etc/apache2/mods-enable
手順2:ApacheへのアクセスをWildflyに転送する設定
ApacheへのアクセスをAJP/1.3プロトコル8009番ポートでWildflyに転送するために「/etc/apache2/mods-enable」ディレクトリ内にconfファイルを作成する。ファイル名は適当でかまわないがここではwildfly-proxy-ajp.confとした。まず、vimを開いて、
sudo vim /etc/apache2/mods-enable/wildfly-proxy-ajp.conf
以下を入力後、保存して閉じる。
<Location /<warファイル名>/>
ProxyPass ajp://127.0.0.1:8009/<warファイル名>/
</Location>
以上のApacheの設定を有効化するために以下のコマンドを実行する。
sudo service apache2 restart
手順3:Wildflyの設定
Wildfly側でAJP/1.3プロトコル8009番ポートで受け取る設定を行う。Wildflyを解凍したディレクトリ内のstandalone/configuration/standalone.xmlをvimで開き、一行追加後、保存して閉じる。
<subsystem xmlns="urn:jboss:domain:undertow:1.0">
<buffer-caches>
<buffer-cache name="default" buffer-size="1024" buffers-per-region="1024" max-regions="10"/>
</buffer-caches>
<server name="default-server">
<http-listener name="default" socket-binding="http"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
</host>
<!--- 以下の一行を追加 -->
<ajp-listener name="ajpListner" socket-binding="ajp" scheme="http" enabled="true"/>
</server>
<servlet-container name="default" default-buffer-cache="default" stack-trace-on-error="local-only">
<jsp-config/>
</servlet-container>
<handlers>
<file name="welcome-content" path="${jboss.home.dir}/welcome-content" directory-listing="true"/>
</handlers>
<filters>
<response-header name="server-header" header-name="Server" header-value="Wildfly 8"/>
<response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow 1"/>
</filters>
</subsystem>
この設定が有効かを確認するために、一度Wildflyを立ち上げて8009番ポートが開いているかを確認する。
そのために、Wildflyを解凍したディレクトリ内のbinディレクトリ内のstandalone.shを実行後、以下のコマンドを実行して確認する。
nmap 127.0.0.1
PORT STATE SERVICE
80/tcp open http
8009/tcp open ajp13
8080/tcp open http-proxy
これでWildflyの設定は完了だ。いったんWildflyの実行を「Ctrl+c」などで終了しておく。
ブラウザで表示
後はWildflyを解凍したディレクトリ内の「standalone/deployments」ディレクトリにwarファイル配置して、「standalone.sh」を実行後、違うパソコンのブラウザでアクセスしてみればよい。例えば、サーバのIPアドレスが「192.168.1.100」でwarファイルが「demo.war」であった場合は、「http://192.168.1.100/demo/」でアクセスしてみる。
もし、表示されない場合は、Apacheのログ「/var/log/apache2/」とWildflyのログ「standalone/log/」を確認してどこで躓いてるのかを把握する。