2月15日、2月20日とnginxについて触れましたが、目的はこれでした。
WebサーバとJBOSSの連携といえば、たいていはmod_jkないしmod_clusterを使って、
Apacheから連携させます。
そんな中、nginxが盛り上がって来たときに、ふと
「そもそもJBOSSへの連携ってできるのかな」
思い浮かんだのがきっかけです。
# 誰得ネタな気がしないでもないですが・・・。
せっかく試してみたのでメモを書いてみます(たぶん、もっといいやり方はあると思います)。
今回、参考にしたのは
http://rockyj.in/?p=193
とか
http://serverfault.com/questions/293348/configure-nginx-for-jboss-tomcat
nginxの文法周りについて、
http://news.mynavi.jp/news/2010/03/09/013/index.html
を使わせていただきました。
【前提】
・LinuxはRHEL5
・JBOSSは5(たぶん、最新バージョンでもいけると思います)
・JBOSSは待ち受けIPアドレスが設定されてて、
http://(JBOSSサーバ名もしくはIPアドレス):8080/(アプリのパス)
への直接アクセスで動くこと。
・hostsファイルやDNSでJBOSSのサーバ名が解決できること。
・JBOSSとnginxは同居している。
・nginxはソースコンパイルで導入。インストール先は/usr/local/nginx
【やってみたこと】
(1)nginxの設定ファイルを変更して再起動。
# cd /usr/local/nginx/conf
# vi nginx.conf
<変更箇所>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
server {
listen 80;
server_name localhost
(省略)
location / {
root html;
index index.html index.htm;
}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
↓
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
server {
listen 80;
server_name (nginxサーバ名もしくはIPアドレス)
(省略)
location / {
root html;
index index.html index.htm;
proxy_pass http://(JBOSSサーバ名もしくはIPアドレス):8080;
}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
(2)nginxを再起動して
http://(nginxサーバ名もしくはIPアドレス)/(アプリのパス)
にアクセスしたら、JBOSSにデプロイしているアプリが見えました。
パスの書き方を詰めれば、もっと細かい制御もできるかもしれません。
ちなみに、参考サイトではproxy_set_headerがいくつか書かれていましたが、
やってみた限りでは proxy_pass だけでいけるようでした。