У меня возникают некоторые проблемы с получением файлов cookie для работы при использовании ProxyPass для перенаправления трафика на порт 80 в веб-приложение, размещенное через Tomcat.
Моя мотивация для включения файлов cookie состоит в том, чтобы избавиться от параметра jsessionid =, который добавляется к URL-адресам.
Я включил файлы cookie в своем context.xml в META-INF / для своего веб-приложения.
Когда я получаю доступ к веб-приложению через http: // url: 8080 / webapp он работает, как ожидалось, параметр jsessionid не отображается в URL-адресе, а хранится в файле cookie.
При доступе к моему веб-сайту через виртуальный хост apache2 файлы cookie, похоже, не работают, потому что теперь к URL-адресам добавляется jsessionid. Как я могу решить эту проблему?
Вот моя конфигурация VHost:
<VirtualHost *:80> ServerName somedomain.no ServerAlias www.somedomain.no <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPreserveHost Off ProxyPass / http://localhost:8080/webapp/ ProxyPassReverse / http://localhost:8080/webapp/ ErrorLog /var/log/apache2/somedomain.no.error.log CustomLog /var/log/apache2/somedomain.no.access.log combined </VirtualHost>
РЕДАКТИРОВАТЬ: файл cookie фактически устанавливается, когда я захожу из http://somedomain.no, но для cookie задан путь «/ webapp».
Я понял.
Добавьте это в конфигурацию VHost:
ProxyPassReverseCookiePath /webapp /
Переназначение URL-адресов - это то, что вызывает больше всего проблем в приложениях, потому что во многих местах пути несовместимы. НАМНОГО лучше избегать этого и заставить посетителя получить прямой доступ к вашей странице. Например, вы могли бы написать правило перенаправления, которое гласит, что когда посетитель нажимает «/», он перенаправляется на «/ webapp /», и таким образом он использует реальный путь, а не переназначенный.
При переназначении вы всегда будете сталкиваться с проблемами, подобными этой. Иногда вы будете удивляться, почему у вас не работают изображения, и вы обнаружите «/ webapp / img / ...» в перенаправлениях, генерируемых приложением. В другие моменты вы обнаружите, что ваше приложение знает свой путь и само создает / webapp местоположения, что приводит к / webapp / webapp в браузере посетителя и т. Д. Это ужасы, которые вызывают по крайней мере половину ошибок администратора. работать в местах, где используется переназначение URL-адресов, поэтому вам действительно следует рассмотреть альтернативы, пока не стало слишком поздно для изменения.