徒然なるままに

個人の備忘録を中心としたブログです

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
httpサーバとしての役割をApacheに任せて
サーブレット、JSPが呼ばれたときだけtomcatに処理をなげることを
Apacheとtomcatの連携といいます。

つまり、Javaプログラムが含まれる場所を事前にApacheに伝えておき、
その場所へのアクセスがあったらプロキシの機能で処理をtomcatに中継する。

Apache側ではモジュールで、tomcat側ではコネクタで接続します。

まずはtomcatの設定。

現在tomcatが正常に動いていればhttp://localhost:8080/でtomcatにアクセス可能になっていると思います。

ポート番号8080/TCPがtomcatに割り当てられているので
このtomcatへの直接へのアクセスを停止させます。

$CATALONA_HOME(tomcatのホームディレクトリ)/conf/server.xmlにデフォルトで70行目
<Connector port="8080" protocol="HTTP/1.1" 
connectionTimeout="20000"
redirectPort="8443" />

の記述があると思うのでこれをコメントアウトしてください。
<!-- <Connector port="8080" protocol="HTTP/1.1" 
connectionTimeout="20000"
redirectPort="8443" />
-->


次に、Apacheモジュールmod_proxy_ajpから8009番に投げられてくるので、これを有効にします。
以下の部分が含まれる部分のコメントを外してください。
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />


tomcatを再起動します。
sudo $CATALINA_HOME/bin/shutdown.sh
sudo $CATALINA_HOME/bin/startupn.sh


この時点でhttp://localhost:8080/にアクセスができなくなっていれば正常に8080番への接続が遮断できています。
tomcatの設定はひとまず終了です。

次にApacheの設定です。
モジュールmod_proxy,mod_ajp_proxyは既に有効であるとします。
有効でない場合は前の記事を参照してください。

設定はhttpd.confにまとめて書くことも出来るのですが、一つのファイルに書くのも煩雑になってしまいがちです。
そこで設定ファイルを細分化しておき、後でhttpd.confからIncludeするという方法が推奨されています。

/usr/local/apache/conf/extra/httpd-proxy.confを下の内容で作成してください。
<Location / >
ProxyPass ajp://localhost:8009/
</Location>

Locationで有効なディレクトリを指定します。
上の設定ではルートディレクトリ以下のアクセスがtomcatに渡されることを意味します。

例えば、http://localhost/servlet/以降にサーブレットやJSPを置いて、ここだけをtomcatに渡したいなら記述は以下のようになります。
<Location /servlet/ >
ProxyPass ajp://localhost:8009/
</Location>

/usr/local/apache/conf/httpd.confの最後にIncludeの一文を追加します。
Include /usr/local/apache/conf/extra/httpd-proxy.conf


これでhttp://localhost/http://localhost/servlet/)からtomcatのドキュメントルートにアクセスできるはずです。

ちょっと紛らわしい点が一つ。
例えばApacheで/servlet/をtomcatに渡したとすると
webapps(tomcatドキュメントルート)/servlet/index.htmlは
http://localhost/servlet/servlet/index.html
でアクセスする必要があります。

http://localhost/servlet/index.htmlではありません。
つまりtomcatに渡したurlがtomcatのドキュメントルートであり、そこからのパスを追っていく必要があるということです。

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://kamiyasu2.blog.fc2.com/tb.php/11-b7ad4a99

kamiyasu

Author:kamiyasu

QR

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。