Apache2.2 と Tomcat8 の連携[プログラミング]
(2016-02-26 19:58:53) by shinoda


< ページ移動: 1 2 >

Apache2.2 と Tomcat の連携を行う。

URL で Tomcat のポート番号を指定して直接アクセスするのではなく、あくまでクライアントからは Web サーバ(Apache)にアクセスし、Apache がこっそり裏でアプリケーションサーバ(Tomcat)にクライアントからのリクエストを中継し、返ってきた内容をさも自分が処理したかのようにクライアントに返す・・・という形。

ちなみに、Apache 2.2 は yum インストールしたものである。

# rpm -qa|grep http
httpd-tools-2.2.15-31.el6.centos.x86_64
httpd-2.2.15-31.el6.centos.x86_64

まず、Tomcat の設定をする。

・直接クライアントがポート番号を指定してアクセスしてきても無視する。
・Apache からのアクセスは許す。

# cd /usr/local/tomcat/conf
# cp server.xml server.xml_20160226
# vi server.xml

修正箇所は下記の 2箇所。

1.HTTP/1.1 プロトコルを受けるポートの指定のところをコメントにする。
    <!--
    <Connector port="9880" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    -->

2.AJP からリダイレクトされてくるポートの指定を 9880 に修正する。
 ※変えなくてもいいんだけど、まあ、少しだけでも安全になるように(笑)
    <Connector port="9880" protocol="AJP/1.3" redirectPort="8443" />

で、Apache の方の設定。

ソースから入れれば、/usr/local/apache2/conf とその下の extra ディレクトリに必要な設定ファイル(httpd.conf と httpd-proxy.conf)が存在していると思うが、yum で入れるとなんでもかんでも httpd.conf に書く古いやり方がディフォルトになってるようで・・・

/etc/httpd/conf/httpd.conf に VirtualHost の設定なんかも書かれているし、気持ち悪いんだけど、今回は、まあ、その書き方に従って、Proxy 設定も httpd.conf に追加しちゃう(^^;

ちなみに、関係するモジュールを読み込むための、

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

この設定は元々有効になってた。
(テスト用サーバなので、予め全部有効にしてたんかね・・・???もう記憶にない(^^;)

# find / -name "mod_proxy_ajp.so" -print
/usr/lib64/httpd/modules/mod_proxy_ajp.so

モジュールもちゃんと存在してるね。

# cp httpd.conf httpd.conf_20160226
# vi httpd.conf
# diff httpd.conf httpd.conf_20160226
956,959d955
< <Location /s/>
<     ProxyPass ajp://localhost:9880/
< </Location>
<

Apache を再起動

# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

Tomcat も再起動。

< ページ移動: 1 2 >


コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る

Powered by
MT4i 3.0.8