У меня совершенно нет идей по этому поводу, и я думаю, что мне нужно заручиться помощью кого-то, кто хорошо разбирается в Apache HTTPD (2.4) и Tomcat (8.5).
У меня есть веб-приложение Spring MVC 4, которое отлично работает, когда я обхожу прокси-сервер для доступа к нему, однако оно не работает, когда я перехожу через прокси-сервер и посещаю ссылку, которая приводит к перенаправлению 302.
Переходя напрямую, меня перенаправляют на правильный путь, поэтому я знаю, что это не веб-приложение, возвращающее клиенту неправильный URL-адрес. Но, проходя через прокси-сервер, я перенаправляюсь в место, которое, кажется, содержит префикс URL-адреса с путем контекста, который уже присутствует! Таким образом, он появляется дважды, и, следовательно, есть запрос на несуществующий URL!
Когда я смотрю журналы доступа Tomcat, я могу указать в качестве префикса пути 302 редиректа путь контекста - дублирующийся путь контекста!
80.229.100.100 - - [04/Mar/2017:08:07:54 +0000] "GET /ctxPath/redirect HTTP/1.1" 302 -
80.229.100.100 - - [04/Mar/2017:08:07:54 +0000] "GET /ctxPath/ctxPath/testUrl HTTP/1.1" 404 986
Это должен быть ответ Tomcat на HTTPD, который использует коннектор AJP. При прямом доступе к странице он проходит через HTTP-коннектор и работает нормально. Я обновил свою конфигурацию HTTPD, чтобы использовать HTTP-коннектор и получить тот же результат для перенаправления 302.
Как видите, каждое перенаправление приводит к ошибке 404. Нужно ли каким-то образом изменять конфигурацию Tomcat?
В настоящее время моя конфигурация HTTPD выглядит так (порт 9009 правильный, поскольку у меня несколько установок Tomcat):
ProxyPass / ajp://localhost:9009/ctxPath/
ProxyPassReverse / ajp://localhost:9009/ctxPath/
ProxyPassReverseCookiePath /ctxPath /
Что мне не хватает?