Apache仮想ホストとmod_proxyを使用して、ポート8080のjettyインスタンスで使用可能なJavaアプリケーション(myapp)にアクセスしたいと思います。
Apache仮想ホスト構成では、 www.mydomain.com ProxyPass / localhost:8080/
/ myappを使用してjettyで実行されているアプリケーションにアクセスできますが、www.mydomain.comからアプリケーションにアクセスする必要があります。
リクエストがwww.mydomain.com/myappmyapp/ProxyPass / localhost:8080/myapp
になるため、アプリケーションが見つかりません。
次に、試してみました:
<Location />
ProxyPass localhost:8080/myapp/
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
</Location>
アプリケーションにアクセスできますが、最初のリクエストのみです。後続のリクエストはwww.mydomain.com/myappmyapp/になります
wiki.eclipse.org/Jetty/Tutorial/Apacheとapachemod_proxydocsを何度も読んだ後、www.mydomain.comからアプリケーションを適切に使用するために管理した唯一の方法は、次の構成を使用することです。
<Location /myapp/>
ProxyPass localhost:8080/myapp/
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
</Location>
<Location />
ProxyPass localhost:8080/myapp/
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
</Location>
したがって、どちらの場合も、要求は突堤アプリケーションに転送されます。
私はapacheとjettyにまったく慣れていません。同じ結果を達成するための、より優れた、よりエレガントな方法があると確信しています。実際、apacheは次のように不平を言っています。
[warn] worker localhost:8080/myapp/ already used by another worker