2012-02-23 5 views
27

Если мне дан военный файл, содержащий веб-приложение Java, и я хочу запустить эту войну локально, тогда мне просто нужен Tomcat, или мне нужны Tomcat и Apache httpd (или любой другой веб-сервер)? Заранее спасибо!Требует ли Tomcat Apache httpd?

ответ

39

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

Я думаю, что люди, как правило ставить Apache перед Tomcat, так что они могут сделать что-то вроде:

  • У одного веб-сайта есть несколько экземпляров Tomcat.
  • Служат статические файлы из Apache, чтобы снять нагрузку с Tomcat.
  • Используйте другие функции Apache, которые могут вам понадобиться (модули).
  • Как @TacticalCoder упоминает в комментариях, вы должны быть корнем, чтобы слушать на порту 80, так что некоторые люди могут использовать Apache в качестве легкого пути к прокси-порт 80 на порт 8080.

Я бы рекомендуйте подход YAGNI и просто отправляйтесь с Tomcat до тех пор, пока вы не найдете причину, по которой вы захотите Apache перед ней.

+0

Ahhh - поэтому Tomcat * - это веб-сервер, и я предполагаю, что «Catalina» - это процессор/контейнер сервлетов? – IAmYourFaja

+0

@AdamTannon - Да, [Каталина] (http://en.wikipedia.org/wiki/Apache_Tomcat#Catalina) является контейнером сервлета. –

+6

@Bredan Long: * «Возможно, вам захочется изменить порт Tomcat, хотя» * [sic] ... С оговоркой, что, например, на Un * x OS вы не можете слушать порт 80/443, не будучи * root * , Но установка Java/Tomcat как * root * не обязательно является хорошей практикой: на Linux вы можете установить Java, не будучи * root *. Вы также можете установить Tomcat без * root *. Затем, как root, вы можете прозрачно перенаправить порт 80/443 на 8080/4443 (например) с помощью брандмауэра (* например, * iptables). Обычно это считается «более безопасным», чем запуск Tomcat как * root * и прямое прослушивание на порту 80/443. – TacticalCoder

5

Just Tomcat. HTTPD никогда не является требованием для Tomcat.

+0

если HTTPD не требуется для Tomcat, то какой процесс в tomcat позаботится о входящих запросах сервера? Не могли бы вы объяснить? Благодарю. –

+0

@KanagaveluSugumar Tomcat запускает HTTP-сервер по умолчанию на порту 8080 (таким образом, задайте перенаправление портов для прослушивания запросов, поступающих на HTTP-порт 80 или укажите порт 8080 в запросах URL-адресов). Кроме того, в комплект поставки файл server.xml, вы увидите следующий элемент: <имя параметра = значение "порт" "org.apache.tomcat.service.http.HttpConnectionHandler" = "8080" /> Чтобы установить сервер Apache HTTP перед сервера tomcat, прокомментируйте эту запись в файле server.xml. – sactiw

+0

@sactiw Спасибо! –

0

Вам просто нужен Tomcat или любой другой контейнер сервлетов Java (Jetty, resin и т. Д.).

0

Tomcat - это контейнер сервлетов, у которого есть собственный HTTP-сервер, поэтому, если вы хотите запустить войну, вам нужен только tomcat, но если вы хотите запустить веб-сайт, содержащий только статические файлы (html, js, css), вы должны выбрать apache лучше, даже если tomcat может это сделать

Смежные вопросы