電気ウナギ的○○

About Home

Apache2.2 と Tomcat8 の連携

shinoda (2016年2月26日 19:58)
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 にアクセスし、返ってきた内容をクライアントのブラウザに返す・・・ということだね。

電気ウナギ的○○

電気ウナギ的○○

About Back

コメント(0)

電気ウナギ的○○

電気ウナギ的○○

About Back

トラックバック(0)

トラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/3825

電気ウナギ的○○

About This Site

電気ウナギ的○○
岩国在住。広島で働く超零細IT企業社長のいわゆる社長日記。
何か、酒と食い物のことばかり書いているようで・・・お察しのとおり、肥満体です:-)


2011/06/24
iPhone用サイト公開

Create with jQuery, jQTouch.


CLOSE