Назад | Перейти на главную страницу

Как удалить номер порта из URL-адресов Tomcat?

У меня есть приложение Groovy on Grails, развернутое на Tomcat / Apache (CentOS). В настоящее время доступ к нему осуществляется через URL-адрес, например http://www.domain.com:8080/AppName. Я хотел бы получить к нему доступ через http://www.domain.com.

Как мне это сделать?

Настройте свой сервер на прослушивание порта 80.

http://www.klawitter.de/tomcat80.html

Я предполагаю, что вы пытаетесь переехать http://www.domain.com:8080/AppName к http://www.domain.com/ без конечный Название приложения. В этом случае вы можете рассмотреть возможность запуска обратного прокси перед Tomcat. Простое переключение порта с 8080 на 80 все равно потребует доступа к вашему приложению через http://www.domain.com/AppName.

Для этого можно настроить Apache. Вам просто нужно будет настроить mod_proxy со следующей конфигурацией:

ProxyPass / http://localhost:8080/AppName/
ProxyPassReverse / http://localhost:8080/AppName/

Вы также можете сделать это с другими веб-серверами, такими как lighttpd или nginx и что не так, в основном большинство обратных прокси могут делать это в той или иной форме.

Согласно спецификации, если в URI нет номера порта, то по умолчанию используется порт 80.

У меня было приложение Tomcat, которое работало как порт 80, и меня беспокоило, что Tomcat будет работать как root (из-за порта 80). Более того, я не мог быть уверен в безопасности приложения. Поэтому я решил внести необходимые изменения, чтобы запустить этот порт как еще один не-Privd порт. Моя проблема, как и ваша, - сохранить простой URI. Я нашел в Интернете несколько шагов, которые мне нужно было сделать, и я был в системе Linux.

Сначала перенаправьте порт 80 на порт 8080 (моя назначенная альтернатива). Вы можете легко сделать это, активировав iptables и используя следующие простые директивы:

iptables -t nat -A OUTPUT -d localhost -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A OUTPUT -d your_hostname -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -d your_hostname -p tcp --dport 80 -j REDIRECT --to-ports 8080

Я считаю, что при настройке я заменил свой IP-адрес на localhost и your_hostname.

Затем вам необходимо внести некоторые изменения в файл конфигурации Tomcat: (1) изменить порт соединителя на 8080 (для этого примера) и порт прокси-сервера на 80. Затем вы можете запустить tomcat как пользователь без полномочий root, по-прежнему имея простой URI, и все довольны. Извините, что я не могу вспомнить конкретный файл XML, который нужно изменить здесь.

Я тоже пробовал решения для этого:

  • Во-первых, я использую 2 сервера tomcats за веб-сервером nginx в качестве обратного прокси, но у меня возникла проблема с общим сеансом, и я работаю над этим решением.

  • Второй, который я сохранил, - это перенаправление портов пространства ядра.

Порт http по умолчанию - 80, и если вы не укажете порт, отличный от 80 в URL-адресе, ваш браузер попытается подключиться к порту 80. Именно так работает http.

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

Если ваши клиенты получают доступ к сайту из-за пределов вашей подсети и проходят через устройство типа маршрутизатора / брандмауэра, вы можете настроить его для перенаправления внешнего порта 80 на внутренний порт 8080.

Таким образом, вы можете предоставить внешним клиентам то, что выглядит как обычное приложение, а внутри вы сможете увидеть реальность.

Это также полезно для чего-то вроде:

app1.domain.com app2.domain.com

Перенаправление на один и тот же сервер внутри на разных портах.