ApacheとWildflyを連携する方法を3つの手順でご紹介する。Jboss AsがWildflyとなってまだ日が浅いためかサーバ上でWildflyをstandaloneで立ち上げて別のクライアントパソコンからブラウザでアクセスするための日本語での情報が少なく感じた。この記事があなたの参考になっていただければ幸いだ。

サーバ環境は以下の通りで、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/」を確認してどこで躓いてるのかを把握する。

関連する記事

  • Ubuntu 日本語形態素解析システムJUMANのインストール方法Ubuntu 日本語形態素解析システムJUMANのインストール方法 buntu14.04で日本語形態素解析システムJUMANのインストール方法をお伝えする。 JUMAN単体では次のコマンドで簡単にインストールできる。 $ sudo apt-get install […]
  • Ubuntu14.04とPython3でMeCabを使う方法Ubuntu14.04とPython3でMeCabを使う方法 MeCabは各種スクリプト言語(perl、ruby、python、Java)から、各言語バイディングで利用できるようになっている。 しかし、Pythonで用意されているのはPython2系のもので、残念ながらPython3系では使えない。 そこで、ここでは用意されているPython2系バイディングをPython3系に変換して使用する方法をお伝えする。 MeCab […]
  • Ubuntu 日本語構文・格・照応解析システムKNPをpythonから使えるようにするUbuntu 日本語構文・格・照応解析システムKNPをpythonから使えるようにする Ubuntu14.04で日本語構文・格・照応解析システムKNPをpythonから使えるようにする方法をお伝えする。 Python2系 まずはKNP - KUROHASHI-KAWAHARA […]
  • UbuntuにRをインストールするための手順UbuntuにRをインストールするための手順 UbuntuにRをインストールするための手順をお伝えする。 Ubuntuのバージョン確認 Ubuntuのバージョンを確認するために、端末を起動し(ショートカットキー:Ctrl+Alt+t)、以下のコマンドを実行する。 DISTRIB_CODENAMEの行を控えておこう。下の内容では「trusty」の部分を控えておく。 $ cat […]
  • R UbuntuでRからMariaDBへ接続する方法 UbuntuでRからMariaDBへ接続して、データフレームとして取得する方法をお伝えする。 環境 Ubuntuのバージョン $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu […]
ApacheとWildflyの連携方法