Использование mod_rewrite, чтобы скрыть порт Tomcat

У меня есть приложения на Tomcat, которые используют такие URL-адреса: http://xxx:8080/myapp

Я не хочу, чтобы пользователи видели порт в URL.

Привет могу сделать правило переписать, как это:

RewriteRule ^/myapp(.*) http://xxx:8080/myapp$1 [P,L]

Таким образом, если пользователь переходит на URL http://xxx/myapp он может войти в приложение в порядке, но порт все равно будет отображаться в браузере. Я хочу, чтобы URL, который видит пользователь, был всегда http://xxx/myapp

Как я могу сделать это, используя mod_rewrite?

3 ответа

Решение

Вы можете использовать обратный прокси в Apache.

Создайте VirtualHost, который прослушивает 80 портов и настройте прокси:

ProxyPreserveHost Off
ProxyPass / http://xxx:8091/app/
ProxyPassReverse / http://xxx:8091/app/

Если у вас нет другого веб-сервера, прослушивающего порт 80, такого как apache, простым решением будет изменить порт прослушивания tomcat на 80.

Если у вас есть Apache, прослушивающий порт 80, вы все равно можете получить доступ к своим приложениям через порт 80, используя mod_jk.

Лучший способ сделать это через обратный прокси.

Вы можете настроить другой веб-сервер перед tomcat, который действует как обратный прокси и автоматически выполняет переводы между портом 80 спереди и портом 8080 сзади.

Apache можно настроить с помощью mod_proxy или даже mod_jk и / или mod_proxy_ajp. В противном случае вы можете использовать автономные прокси, такие как фунт.

Другие вопросы по тегам