Используя Apache virtualhost и mod_proxy, я хочу получить доступ к java-приложению (myapp), доступному в экземпляре Jetty на порту 8080.
С ProxyPass / localhost:8080/
в конфигурации apache virtualhost я могу получить доступ к приложению, запущенному вс помощью www.mydomain.com/myapp, но я хочу, чтобы к приложению обращались с сайта www.mydomain.com.
Попытка с помощью ProxyPass / localhost:8080/myapp
Приложение не может быть найдено, поскольку запрос становится www.mydomain.com/myappmyapp /.
Затем попытался:
<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 и документы apache mod_proxy - единственный способ, которым мне удалось правильно использовать приложение с 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>
, поэтому запрос перенаправляется в приложение Jetty в обоих случаях.
Я новичок в Apache и Jetty, и я уверен, чтоСуществует лучший и более элегантный способ достижения того же результата.На самом деле apache жалуется, говоря:
[warn] worker localhost:8080/myapp/ already used by another worker