Как исправить (Wicket in) Tomcat в / myapp за прокси-сервером Apache в /, который отправляет неправильное перенаправление в / myapp / xxx вместо / xxx? - PullRequest
1 голос
/ 12 декабря 2010

Я развернул свое приложение Wicket в / myapp в Tomcat и разместил его за веб-сервером Apache, используя

ProxyPass / http://localhost:8080/myapp/
ProxyPassReverse / http://localhost:8080/myapp/

Теперь Wicket неправильно перенаправляет пользователей в / myapp / xxx вместо /xxx.

Есть ли способ заставить Wicket (1.3.5) использовать / в качестве моего корневого пути (вместо / myapp, который является контекстным путем развертывания сервлета)?!

Edit: есть решение, описанное по следующей ссылке, но оно не работает для версии 1.3.5: Я нашел это: https://cwiki.apache.org/WICKET/wicket-behind-a-front-end-proxy.html

Edit: проблема в том, что wicket использует перенаправления относительного пути с ServletResponse # sendRedirect и Tomcat преобразует их в абсолютные перенаправления, содержащие / myapp в начале Я пробовал mod_jk (AJP), но не было никакой разницы!

Должен быть какой-то способ указать proxy-pass или mod-jk переписать перенаправления перед отправкой их клиенту!

Ответы [ 3 ]

1 голос
/ 18 января 2011

Я не нашел прямого ответа, но использовал следующий обходной путь с модом jk, я думаю, что это также возможно сделать с передачей прокси.

RewriteRule           /myapp/(.*)      /$1 [L,R]
RewriteRule           ^(.*)            /myapp$1 [PT]
JkMount               /myapp/*         ajp13_worker

Первая строка перенаправляет запрос, исходящий от клиента, начинающегося с / myapp / * (что является результатом неправильных перенаправлений Wicket / Tomcat / Apache) в /*.

Вторая строка переписывает все запросы из / * в / myapp / *, а третья строка отправляет их в tomcat.

Для пропуска через прокси третью строку следует заменить на:

ProxyPass             /myapp/          http://localhost:8080/myapp/
ProxyPassReverse      /myapp/          http://localhost:8080/myapp/
0 голосов
/ 19 января 2011

Вам может пригодиться этот документ Tomcat:

http://tomcat.apache.org/connectors-doc/generic_howto/proxy.html

Устраняет вышеуказанную ситуацию с RedirectMatch и mod_rewrite.

0 голосов
/ 21 декабря 2010

Сам не проверял, но вы смотрели на mod_rewrite?Есть несколько примеров, описывающих то, что вы хотите сделать здесь .

...