LoginSignup
13
17

More than 5 years have passed since last update.

備忘録 Apache2.4.6 - Tomcat 8.5.11 を連携してみた

Posted at

初めてApacheとTomcatとの連携にチャレンジしてみた!

【環境】
OS: Cent OS 7.2
Apache : 2.4.6  ※ portは11080を指定しています
Tomcat : 8.5.11

事前に、 firewall-cmdを用いて、11080やApacheのポート8080は解放しています

サンプルアプリの確認

1.サンプルアプリをダウンロード
  とりえずサンプルアプリを動かしてみたいので、以下のURLからダウンロード。
  ※sample.warファイル
  
  http://tomcat.apache.org/tomcat-8.5-doc/appdev/sample/

  2017032901.JPG

2.サンプルアプリケーションをサーバー上に配置
  Tomcatのインストールディレクトリ内にある webappディレクトリに配置。
  今回は、/usr/local/apache-tomcat-8.5.11/webappsディレクトリ

3.ファイルのオーナーを変更
  この環境はtomcatユーザーで起動するため、配置したファイルをtomcatユーザーに変更。

$ sudo chown tomcat.tomcat sample.war
$ ls
ROOT  docs  examples  host-manager  manager  sample  sample.war
$ ls -l
合計 16
drwxr-x---.  3 tomcat tomcat 4096  3 23 20:39 ROOT
drwxr-x---. 14 tomcat tomcat 4096  3 23 20:39 docs
drwxr-x---.  6 tomcat tomcat   78  3 23 20:39 examples
drwxr-x---.  5 tomcat tomcat   82  3 23 20:39 host-manager
drwxr-x---.  5 tomcat tomcat   97  3 23 20:39 manager
drwxr-x---.  5 tomcat tomcat   81  3 29 10:08 sample
-rw-r--r--.  1 tomcat tomcat 4606  3 29 10:02 sample.war

 
4.ファイルを展開
  jarコマンドで、サンプルアプリを展開する。

$ jar -xvf sample.war
  META-INF/が作成されました
 META-INF/MANIFEST.MFが展開されました
  WEB-INF/が作成されました
  WEB-INF/classes/が作成されました
  WEB-INF/classes/mypackage/が作成されました
  WEB-INF/lib/が作成されました
  images/が作成されました
 WEB-INF/classes/mypackage/Hello.classが展開されました
 WEB-INF/web.xmlが展開されました
 hello.jspが展開されました
 images/tomcat.gifが展開されました
 index.htmlが展開されました
$ ls
META-INF  ROOT  WEB-INF  docs  examples  hello.jsp  host-manager  images  index.html  manager  sample  sample.war

5.Webブラウザでの確認
  Webブラウザより http://IPアドレス:8080/sample/ へアクセスする。
  以下のような画面が表示される。

2017032902.JPG

Tomcat上での設定(確認)

apacheとtomcatを連携するためには、ajpモジュールが必要となる。
Tomcatのインストールディレクトリ内にある confディレクトリにあるserver.xmlで以下の記述があることを確認する。
※ 今回は、/usr/local/apache-tomcat-8.5.11/conf/server.xmlファイルの確認

server.xml
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

Apache上の設定

1.LoadModuleの設定
  apacheとtomcatを連携するために、LpadModuleの設定が必要となる。
  以前は httpd.confに記述されていたが、 今回のバージョンでは、httpd.confファイルにへ記述されていない。
  /etc/httpd/conf.modules.dディレクトリに、モジュールをロードするためのconfファイルが存在するため、必要に応じて記述を行う。

  今回、必要となる記述は以下の2つとなる。 

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

  これらの記述は、00-proxy.confファイルにすでに記述されているため、今回は追記の必要はない。

# grep proxy *conf
00-proxy.conf:# This file configures all the proxy modules:
00-proxy.conf:LoadModule proxy_module modules/mod_proxy.so
00-proxy.conf:LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

2.extraディレクトリの作成
  /usr/httpd/confディレクトリ内に、extraディレクトリを作成する。

# pwd
/etc/httpd/conf
# mkdir extra
# ls
extra  httpd.conf  httpd.conf.20170322  httpd.conf.rpmsave  magic

3.httpd-proxy.confファイルの作成
  extraディレクトリ内に、httpd-proxy.confファイルを作成する。
  このファイルに、ajpの設定内容を記述する。

ProxyPass /sample/ ajp://192.168.56.106:8009/sample/

  これによりApacheへきたリクエストが ajpモジュールが、8009ポートで、Tomcat上のsampleアプリを呼び出す。
  また、このポートはTomcatのserver.xmlファイルでajp連携の設定を確認したときのポートっ番号である。

4.httpd.confファイルの編集
  先ほど作成したファイルをApacheが読み込むために、httpd.confファイルの末尾に、以下の内容を追記する。

Include /etc/httpd/conf/extra/httpd-proxy.conf

5.Apacheを再起動
  Apacheの設定変更を反映するため、再起動する。

$ sudo systemctl restart httpd

Webブラウザでアクセス

Apache経由で、サンプルアプリへ接続する。

Apache経由でアクセスできた!

2017032903.JPG

よかった、よかった。

13
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
17