Apache2.2 と Tomcat8 の連携

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 も再起動。

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

これで、今まで

http://www.exsample.com:9876/test.jsp 

にアクセスしていたものが、

http://www.exsample.com/s/test.jsp

でアクセスできるようになる。

一番最初に書いたように、一旦、80番ポートで待つ Apache にアクセスし、Apache が 9876番ポートで待つ Tomcat にアクセスし、返ってきた内容をクライアントのブラウザに返す・・・ということだね。

トラックバック(0)

このブログ記事を参照しているブログ一覧: Apache2.2 と Tomcat8 の連携

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/3825

コメントする

このブログ記事について

このページは、shinodaが2016年2月26日 19:58に書いたブログ記事です。

ひとつ前のブログ記事は「Eclipse でリポジトリー・ロケーションの追加に失敗した話」です。

次のブログ記事は「愛俺弁当17」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら