Tomcat Webapp на порту 80

У меня есть веб-приложение на моем сервере tomcat, например:

mydomain.com:8080/mywebapp

Затем я подключаюсь к своему веб-приложению, и оно работает правильно, но я хочу, чтобы мое веб-приложение выглядело так:

mydomain.com

Поэтому мне не нужен только tomcat на порту 80, я не хочу получать доступ к моему веб-приложению через его имя, я хочу подключаться напрямую, используя URI своего домена.

Как я могу это сделать? Я хочу, чтобы это работало с серверами Linux (Ubuntu 12.04 LTS) и Windows.


person eLRuLL    schedule 01.05.2013    source источник


Ответы (3)


Есть несколько способов добиться этого, но наиболее распространенный способ решить эту проблему — запустить Apache в качестве обратного прокси-сервера перед ним. Вы можете найти некоторые подробности здесь. Это будет работать как на Linux, так и на Windows. Для Linux вы также можете использовать authbind, чтобы позволить Tomcat привязываться к порту 80. Простое изменение порта на 80 в вашем server.xml не будет работать в Linux, так как вам потребуется запустить Tomcat как root, что не очень хорошая идея. .

Кроме того, чтобы ваше веб-приложение было /, вы можете развернуть свой военный файл как ROOT.war.

person NilsH    schedule 01.05.2013
comment
Отлично, думаю, я воспользуюсь authbind, выполнив следующие действия: java. dzone.com/articles/running-tomcat-port-80-user - person eLRuLL; 02.05.2013

Запуск любого приложения на привилегированном порту (ниже 1024) требует особых привилегий. Если вы сделаете это, убедитесь, что ваш экземпляр должным образом защищен. .

Чтобы настроить порт, который Tomcat прослушивает, необходимо изменить HTTP-коннектор в conf/server.xml (справочная документация по серверу):

<Connector port="80" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

Чтобы изменить контекстный путь приложения, вы можете переименовать файл войны. Чтобы развернуть его в корне, переименуйте файл войны в ROOT.war. Или вы можете добавить META-INF/context.xml, в котором вы можете указать желаемый контекстный путь (контекстные справочные документы):

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/" />
person ilikeorangutans    schedule 01.05.2013
comment
Я уже пробовал изменить порт на 80, но это не работает в Linux, возможно, для этого нужны дополнительные шаги, но я не хочу рисковать безопасностью. - person eLRuLL; 02.05.2013
comment
Вероятно, это потому, что tomcat не работает как root; процессам без полномочий root не разрешено связываться с привилегированными портами. Еще один отличный способ справиться с этим — реализовать либо mod_jk, либо настроить обратный прокси-сервер с помощью apache. - person ilikeorangutans; 02.05.2013

Вам нужно установить веб-сервер apache и настроить его для использования tomcat.

Вам нужно использовать mod_jk, чтобы настроить веб-сервер apache для связи с tomcat.

Используйте эту ссылку, чтобы настроить mod_jk.

person NullPointerException    schedule 01.05.2013