ショッピング カートを設定する Web アプリケーションがあります。このアプリケーションは、それぞれが独自のドメインを持つさまざまな Web サイトにサービスを提供します。仮想ホストは、各ドメインを Tomcat 6 サーバーに転送し、その特定の Web サイトの静的リソースへのパスを設定するために使用されます。これらの静的リソースは Web アプリケーションに保存できないため、サーバーに保存され、Apache を介して提供されます。
最初にコンテキスト ルートで JkMount を使用し、[P, L] を使用して URL 書き換えを行い、URL からコンテキスト パス "mywebapp" を取得します。そのため、誰かがこのアプリケーションにアクセスするときにsomedomain.com
、Web アプリケーションが処理するドメインではsomedomain.com/mywebapp/store/cart
なく、ブラウザ見somedomain.com/store/cart
ます。これまでのところ、これは非常にうまく機能しています。問題は、すべてのリクエストでセッションがリセットされ、その理由がわからないことです。
サービス提供のフロント エンドから apache を削除すると、セッションはリセットされず、正常に動作します (予想どおり)。しかし、セッションを失うことなくアプリケーションに転送するように仮想ホストを設定することはできないようです。私はこの問題について多くのことを読みましたが、私の専門は JavaEE であり、Apache Web サーバーについての知識はほとんどありません。そのため、修正の調査を開始する方法さえわかりません。
ProxyPassing と呼ばれるものについて聞いたことがありますが、それが何を意味するのか、どのように機能するのかはわかりません。私が見たほとんどの例では、ドメインを追加する Tomcat server.xml に変更が加えられています。これは、ドメイン (一致する仮想ホスト) が動的に追加され、Apache を再起動できますが、JavaEE を再起動できないため、実際には実行できません。新しいサイトが追加されるたびにアプリケーション。
これを修正するためのアイデア、または根本的な原因にたどり着くためのアイデアはありますか? 代替アプローチはありますか?
UDPATE : 動的 Web サイトの 1 つに仮想ホスト エントリを投稿します。
<VirtualHost *:80>
ServerAdmin test@test.com
DocumentRoot "C:/wamp/www"
ServerName jawesome.com
ServerAlias www.jawesome.com
ErrorLog "logs/jawesome_com-error.log"
CustomLog "logs/jawesome_com-access.log" common
Alias /files/ "C:/static/1/uploaded_files/"
<Directory "C:/static/1/uploaded_files">
Options FollowSymLinks Indexes MultiViews
Order allow,deny
Allow from all
</Directory>
JkMount /webapp ajp13
JkMount /webapp/* ajp13
RewriteEngine on
#RewriteLogLevel 9
#RewriteLog "/usr/local/apache/logs/testrewrite.log"
RewriteCond %{REQUEST_URI} !^/(webapp/.*|files/.*)$
RewriteRule ^/(.*)$ /webapp/$1 [P,L]
</VirtualHost>