0

現在tomcat6インスタンスでいくつかのアプリを提供しているapache2を実行しているサーバーがあります。それらはすでに構成され機能しており、次のような書き換えルールがあります。

RewriteCond %{REQUEST_URI} ^/app1 [NC,OR]
RewriteCond %{REQUEST_URI} ^/app2 [NC,OR]
RewriteCond %{REQUEST_URI} ^/app3 [NC,OR]
RewriteCond %{REQUEST_URI} ^/aap4 [NC,OR]
RewriteCond %{REQUEST_URI} ^/app5 [NC,OR]
RewriteCond %{REQUEST_URI} ^/app6 [NC]
RewriteCond %{SERVER_PORT} !443
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [R,L]

次に、JKMountsがあります。

JkMount /app1/*.jsp tomcat.web
JkMount /app2* tomcat.web
JkMount /app3* tomcat.web
JkMount /app6* tomcat.web
JkMount /app6* tomcat.web
JkMount /app6* tomcat.web

そして、workers.propertiesは次のようになります。

workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/local/java
ps=\

worker.list=tomcat.web

# Set properties for worker 'tomcat.web' (ajp13)
worker.tomcat.web.type=ajp13
worker.tomcat.web.host=localhost
worker.tomcat.web.port=8009
worker.tomcat.web.cachesize=10
worker.tomcat.web.cache_timeout=600
worker.tomcat.web.socket_keepalive=1
worker.tomcat.web.connection_pool_size=150
worker.tomcat.web.connection_pool_minsize=75
worker.tomcat.web.connection_pool_timeout=10000

新しいTomcatインストールを追加し、そこで「オンライン」と呼ばれる新しいアプリを実行しました。そこで、次のような新しいワーカーを追加しました(worker.listにもワーカー名を追加しました)。

# Set properties for worker 'tomcatb.web' (ajp13)
worker.tomcatb.web.type=ajp13
worker.tomcatb.web.host=localhost
worker.tomcatb.web.port=8109
worker.tomcatb.web.cachesize=10
worker.tomcatb.web.cache_timeout=600
worker.tomcatb.web.socket_keepalive=1
worker.tomcatb.web.connection_pool_size=150
worker.tomcatb.web.connection_pool_minsize=75
worker.tomcatb.web.connection_pool_timeout=10000

次に、他のすべてのCONDの上に新しいCONDを追加しました

RewriteCond %{REQUEST_URI} ^/online [NC,OR]

そしてこのような新しいJKMount:

JkMount /online* tomcatb.web

ここでは問題なく動作します。でアプリにアクセスできます

http://MYSERVER/online

そしてそれは大丈夫です。アクセスするだけでそのアプリを提供できるようになる必要があります

http://MYSERVER/

しかし、私はそれを達成することができませんでした。私は次のような書き換えルールを作成しようとしています(以前のCONDを削除し、これを追加します)。

RewriteCond %{REQUEST_URI} ^/online [NC,OR]
RewriteCond %{SERVER_PORT} !443
RewriteRule ^online(.*)$ / [PT,QSA,L]

しかし、それはうまくいきません、そして私が行くとき

http://MYSERVER/

エラーが発生します:

Forbidden
You don't have permission to access / on this server.

誰かが私のアプリを必要な方法でサーバーするようにapacheを構成する方法について正しい方向に私を向けることができますか?

4

1 に答える 1

1

私はこれを解決しましたが、最善のアプローチを使用してそれを行ったかどうかはわかりませんが、これは私が最終的に行ったことです(これは私の要件を満たしているので、今では十分です)

次のような新しい書き換え条件を追加しました。

RewriteCond %{REQUEST_URI} ^/ [NC,OR]

次に、このJKMount

JkMount /* tomcatb.web

また、サーバーで実行する必要のあるアプリは別のTomcatインスタンスで実行する必要があるため、すべてのWebアプリを削除し、戦争をROOT.warとしてデプロイしました。

すべてを再起動し、今私が行く場合

http://MYSERVER/

それは私が期待しているコンテンツを表示します

于 2012-07-17T22:22:16.373 に答える