Apache tomcat настройка linux

Установка Tomcat в Ubuntu 18.04

Tomcat, часто называемый Apache Tomcat, является одним из самых популярных приложений, предназначенных для выполнения сервлета Java и рендеринга JSP-страниц . Это приложение с открытым исходным кодом было выпущено Apache Software Foundation и одобрено многими разработчиками. В этом руководстве мы покажем вам, как происходит установка Tomcat в Ubuntu 18.04, и поможем настроить его для использования на вашем VPS!

Tomcat генерирует файлы JSP (сгенерированные сервером веб-страницы, подобные файлам PHP и ASP) в код Java, затем компилирует их в файлы .class, которые выполняет виртуальная машина Java. На сегодня Tomcat определенно является одним из наиболее используемых контейнеров сервлетов.

Преимущества Apache Tomcat

  • Tomcat – это быстрый и простой способ запуска ваших приложений в Ubuntu. Он обеспечивает быструю загрузку и помогает запустить сервер более эффективно
  • Tomcat содержит набор всеобъемлющих встроенных настроек, которые обеспечивают гибкость его использования
  • Tomcat – бесплатное приложение с открытым исходным кодом. Кастомизируйте его под свой проект непосредственно через код
  • Tomcat предлагает своим пользователям дополнительный уровень безопасности
  • Благодаря его стабильности, даже когда вы сталкиваетесь с проблемами в Tomcat, он не останавливает работу остальной части сервера

Установка Tomcat в Ubuntu

В этом руководстве вы узнаете, как происходит установка Tomcat 9 в Ubuntu 18.04, а также как настроить его для использования. Информация в этом руководстве также актуальна для Ubuntu 16.04 и других дистрибутивов на его основе.

Прежде чем начать, настройте на своём сервере пользователя без полномочий root с привилегиями sudo. Не забудьте получить доступ к вашему серверу по SSH . Ознакомьтесь с нашим руководством по PuTTY , если у вас возникли проблемы.

Шаг 1: Установите Java

Перед установкой Tomcat в Ubuntu нам нужно установить Java для выполнения кода веб-приложения Java. OpenJDK – разработка Java по умолчанию в Ubuntu 18.04. Установка Java не займёт много времени. Просто следуйте приведенным ниже командам:

Установите пакет OpenJDK , выполнив:

Теперь, когда JDK установлен в вашей системе, вы можете создать пользователя tomcat, выполнив следующий шаг.

Шаг 2. Создание Пользователя Tomcat

В целях безопасности не следует использовать Tomcat без уникального пользователя. Это облегчит установку Tomcat в Ubuntu. Создайте новую группу Tomcat, которая будет запускать сервис:

Следующая процедура – создание нового пользователя tomcat. Создайте пользователей группы Tomcat с домашним каталогом opt/tomcat для запуска сервиса:

Шаг 3: Установка Tomcat в Ubuntu

Лучший способ установить Tomcat 9 в Ubuntu – загрузить последний бинарный пакет со страницы загрузок Tomcat 9 и настроить его вручную. Если в момент загрузки будет доступна другая версия, не 9.0.17, используйте последнюю стабильную версию. Просто скопируйте ссылку на основной файл tar.gz (англ) в разделе Binary Distributions.

Теперь перейдите в каталог /tmp на вашем сервере, чтобы загрузить элементы, которые вам не понадобятся после извлечения содержимого Tomcat:

Для загрузки по скопированной ссылке (с сайта Tomcat) используйте следующую команду curl :

Шаг 4: Обновите Разрешения

Теперь, когда вы завершили установку Tomcat в Ubuntu, вам нужно настроить пользователя, чтобы у него был полный доступ к установке Tomcat. Этот пользователь должен иметь доступ к каталогу. Для этого выполните следующие команды по порядку:

Теперь передайте группе Tomcat право владения всем каталогом установки с помощью команды chgrp:

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

Сделайте пользователя Tomcat владельцем веб-приложений, а также каталогов work, temp и logs:

Шаг 5: Создайте Файл Модуля systemd

Нам нужно будет создать новый файл модуля для запуска Tomcat как сервиса. Откройте ваш текстовый редактор и создайте имя файла tomcat.service в /etc/systemd/system/ :

Читайте также:  Windows 10 убираем все лишнее

Затем вставьте следующую конфигурацию:

Сохраните и закройте файл после выполнения приведённых выше команд.

Затем уведомите систему о том, что вы создали новый файл, введя в командной строке следующую команду:

Следующие команды позволят вам выполнить сервис Tomcat:

Шаг 6: Настройте Брандмауэр

Важно настроить брандмауэр таким образом, чтобы сервис получал запросы. Tomcat использует порт 8080 для приёма обычных запросов. Разрешите трафик на этот порт с помощью UFW (англ) :

Выполните команду, указанную ниже, чтобы получить доступ к splash screen, перейдя в свой домен или IP-адрес и добавив к нему :8080 в браузере – http://IP: 8080

Шаг 7. Настройка Интерфейса Веб-управления Tomcat

Следуйте приведённой ниже команде, чтобы добавить логин для пользователя Tomcat, и отредактировать файл tomcat-users.xml :

Теперь определите пользователя, который может иметь доступ к файлам, а также добавьте имя пользователя и пароли:

Для веб-приложения Manager введите:

Для веб-приложения Host Manager введите:

Чтобы перезапустить сервис Tomcat и просмотреть эффекты:

Шаг 8: Доступ к Онлайн-интерфейсу

Теперь, когда у вас уже есть пользователь, вы можете получить доступ к интерфейсу управления через браузер. Ещё раз, вы можете получить доступ к интерфейсу, указав доменное имя или IP-адрес вашего сервера, добавив к нему порт 8080 в браузере — http://server_domain_or_IP:8080

Давайте взглянем на приложение Manager, доступное по ссылке http://server_domain_or_IP: 8080/manager/html.

Убедитесь, что вы ввели учётные данные в файл tomcat-users.xml .

Для управления нашими приложениями Java мы используем Web Application Manager. С его помощью вы можете начать, остановить, перезагрузить, развернуть и отменить развёртывание всех приложений. А внизу страницы вы найдёте данные о вашем сервере.

Теперь давайте посмотрим на Host Manager, он доступный по ссылке http://server_domain_or_IP:8080/host-manager/html/

На странице Virtual Host Manager вы также можете добавить новые виртуальные хосты, которые отвечают вашему приложению.

Итоги

Ubuntu поддерживает Tomcat 6 и последнюю версию – Tomcat 9, которая включает новые функции, позволяющие пользователям свободно работать над приложением.

Установка Tomcat, описанная в этом руководстве, является функциональной, но полностью незашифрованной, поэтому другие пользователи браузера могут посмотреть или изменить информацию, пароли и другие конфиденциальные данные. Единственный способ решить эту проблему – зашифровать ваши соединения с помощью SSL .

Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.

Источник

Установка и настройка Apache Tomcat под Linux

Замысел написать эту статью про установку и настройку, наверное, одного и самых популярных веб-серверов на Java возник уже давно. Одной из причин было желание сделать небольшую заметку «для себя» с подробной инструкцией. Возможно эта статья также пригодится другим java программистам. Пользы для кого-нибудь ещё, например для системных администраторов в ней будет не так много. Скорее всего они просто сделают так: apt-get install tomcat8 и затем потребуют у программиста war-ик для развертывания. Программист же часто хочет чуть большего — например, возможности работать с различными версиями серверов (которых может даже ещё нет в официальном репозитории) или наоборот откатиться к какой-то специфичной версии. Системному администратору такие исследования, как правило, не нужны. По-хорошему, у него должна стоять просто стабильная работающая версия, на которую периодически он будет накатывать обновления и лишний раз на неё не дышать.

В общем, это статья про то, как программисту установить Apache Tomcat под Linux чтобы «поиграться» с ним, но при этом ничего сильно не сломать.
Также эта статья может быть полезна в тех случаях, когда начинающий java программист отладив свое веб-приложение Tomcat запущенным на Windows, сталкивается со жгучим желанием развернуть свой сайт на какой-нибудь недорогой VPS-ке с Ubunt-ой.

Статья может показаться излишне многословной, но мне хотелось рассказать про основные «грабли» и способы их обхода. Могу предположить, что системные администраторы могут быть недовольны тем, что это решение недостаточно системные. Поэтому тем, кто хочет подробно изучить данный вопрос или посвятить свою жизнь профессиональной (т.е. получать за это деньги) настройки линуксовых серверов, тому лучше следует обратиться к соответствующей литературе, обучится этому ремеслу у профессионала и черпать знания у сисадминского сообщества. Здесь же у меня просто блог для java программистов.

Читайте также:  Что такое радиомодули windows 10

Подготовка

Исходные данные.
Linux. Debian 9. 64bit.

1. Устанавливаем JDK.
Почему JDK, а не JRE? По-факту достаточно JRE, но лично мне приятно иметь возможность в случае необходимости по-быстрому скомпилировать программку на java прямо на сервере.
Вы не поверите, но жизнь такая интересная штука, никогда не угадаешь когда тебе может понадобится скомпилировать и запустить что-то на Java. Лично мне запуск javac из консоли на сервере помогал несколько раз.

Далее, я предпочитаю ставить Oracle JDK. Собственно OpenJDK тоже неплох и устанавливается гораздо проще (sudo apt-get install default-jdk). Просто я отдаю предпочтение оригинальной Sun/Oracle. Тем не менее, ставить Oracle JDK, OpenJDK или какую-либо другую версию — личное дело каждого. Лично я отношусь к пользователям Open JDK без предубеждения. Более того, сам часто использую версии Open JDK (например Java 9) для того, чтобы ознакомиться с их новыми возможностями.

Установка Oracle JDK под Windows и Linux сильно отличаются. Под Windows проще установить Oracle JDK проще простого (скачать и запустить), а сборку Open JDK под Windows нужно ещё поискать.
С Linux-ом всё наоборот. Open JDK как я писал ставится очень просто через apt, с Oracle JDK чуть сложнее.

В интернете существует совет, что для установки нужно добавить ещё один apt-репозиторий. Я так не делаю. Возможно это лично моя паранойя, но я стараюсь так не делать и делаю установку руками. Особенно если учесть, что установка заключается в том, чтобы скачать и распаковать архив.

Для этого заходим на сайт загрузки Oracle.

Выбираем jdk-XYZ-linux-x64.tar.gz файл. Правой кнопкой — сохранить ссылку.

Далее скачиваем архив:

$wget —header «Cookie: oraclelicense=accept-securebackup-cookie» [ссылка]

$wget —header «Cookie: oraclelicense=accept-securebackup-cookie» http://download.oracle.com/otn-pub/java/jdk/8u73-b02/jdk-8u73-linux-x64.tar.gz

Специально для параноиков, нужно проверить SHA-1 сумму (поскольку выкачиваем-то по голому http).

Смотрим что показалось на экране и сверяем значение, с тем что опубликовано на официальном сайте.
Для этого заходим на сайт на сайт загрузки и ищем строчку Checksum.

Например для jdk-8u73-linux-x64.tar.gz

она должна быть f4f1f7ab1b5986aa2ee2a2f035a2d7a8ab57a673bdee4fc51d8127dd84f423ae

Если в картинках, то так:

Загрузка Oracle JDK

$tar -xzf jdk-8u73-linux-x64.tar.gz -C /opt

По старой привычке я складываю всё в «/opt». После этого делаю симлинк.

$link -s /opt/jdk1.8.0_74 /opt/jdk

Установка

1. Загружаем Apache Tomcat с официального сайта.
Выбираем нужную версию, копируем ссылку на tar.gz архив и скачиваем.
Например так:

Я понимаю, что многим это может показаться занудством, но все-таки решил написать, может просто кто-то не знает что он должен это делать.
Вообще можно проверить и так:

$wget https://www.apache.org/dist/tomcat/tomcat-8/v8.0.33/bin/apache-tomcat-8.0.33.tar.gz.sha1 $sha1sum -c apache-tomcat-8.0.33.tar.gz.sha1

Тоже самое в картинках:

Загрузка Apache Tomcat

2. Сервер можно распаковать туда же в /opt.

$tar -xzf apache-tomcat-8.0.33.tar.gz -C /opt $link -s /opt/apache-tomcat-8.0.33 /opt/tomcat

Также для удобства делаю симлинк, например tomcat, tomcat-dev, tomcat-8, tomcat-not-working и т.д. В зависимости от целей сервера.

Настройка

Переходим в папку /opt/tomcat/bin

Создаем файлик setenv.sh

Записываем в него:

Про этот файл можно почитать в документации: RUNNING.txt.
На самом деле, часто некоторые разработчики просто тупо вбивают «JAVA_HOME=. » прямо в catalana.sh.
Дело в том, что проще открыть nano catalana.sh и поправить его, чем создавать setenv.sh (а точнее как-то узнать про его существование), хотя изначально этот файл специально был сделан для того, чтобы менять ключи JVM и различные переменные окружения, и при этом не портить основной запускаемый файл.

Вот выдержка из документации:

Using the «setenv» script (optional, recommended)

Apart from CATALINA_HOME and CATALINA_BASE, all environment variables can
be specified in the «setenv» script. The script is placed either into
CATALINA_BASE/bin or into CATALINA_HOME/bin directory and is named
setenv.bat (on Windows) or setenv.sh (on *nix). The file has to be
readable.

Читайте также:  Linux c error function

By default the setenv script file is absent. .

Строго говоря, часто переменная окружения JAVA_HOME часто указывает туда, где установлена системная JVM. По-большому счету это правило работает, но часто в работе/отладке приходится запускать какую-то конкретную версию Tomcat-а под какой-то специальной версией JVM. Поэтому удобно иметь возможность гибко менять настройки через setenv.sh.

После того как все пути настроены, запускаем и проверяем, что все хорошо работает.

Кстати заметил интересный момент. При запуске на виртуальном хостинге может быть довольно ощутимая задержка в старте (около минуты).
Не хочется углубляться в детали, но мне помогла установка haveged.

$apt-get install haveged

В принципе это опционально, можно просто подождать и проверить, как всё запустилось на 8080 порту.
Если все хорошо, двигаемся дальше.

Далее создаем специального пользователя для запуска сервера.

$groupadd tomcat $useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat $chown -R tomcat:tomcat /opt/tomcat

После этого проверяем, что всё запускается. Например так:

$sudo -u tomcat /opt/tomcat/bin/startup.sh $tail -f /opt/tomcat/catalina.log

Ждем пока не появится надпись, что сервер успешно запустился.

Дальше попробуем запустить на 80-ом порту. Поскольку для запуска на 80-ом порту нужен рут, а запускать из под рута это нарушение «техники безопасности», то это можно сделать быстрым хаком, перенаправив порты.

$iptables -t nat -A PREROUTING -p tcp —dport 80 -j REDIRECT —to-ports 8080

Естественно нужно убедиться, что у вас не установлен уже какой-нить веб-сервер (например apache или nginx), который работает на 80-ом порту.

Проверяем, что все нормально и если всё хорошо — сохраняем правило переброса портов.

$invoke-rc.d iptables-persistent save

Если сохранялка iptables не установлена — устанавливаем:

$apt-get install iptables-persistent

Собственно говоря всё.

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

1. Tomcat заводят через mod_jk за Apache HTTPD или за Nginx (через reverse proxy).
Это дает возможность разделить статику, балансировать нагрузку и делать многие другие полезные штуки. Это круто в продакшене, но в девелоперской конфигурации это ещё один слой который не всегда упрощает отладку и разработку.
В принципе в настройке ничего сложного нет, но всё равно нужно будет покурить документацию. Раньше я предпочитал связку через mod_jk, теперь чаще сталкиваюсь с Nginx.

2. Нужно сделать запуск Tomcat-а как службу. Это не паранойя, а здравый смысл. По-крайней мере если не дай Бог сервер перезапустится, не нужно будет в ручную его запускать.

3. Правильные сисадмины разводят файлы томката по правильным папкам (/etc, /var/log и т.д.) и более деликатно относятся к правам доступа к конфигурационным файлам (и не только).
Можно посмотреть, как это делается через apt-get install tomcat8.

4. Не буду отрицать, что у многих /opt — помойка в которой лежит всякое барахло.
Тем не менее, если это мой персональный сервер, то это не помойка, а мой личный склад программ.

5. Хорошие сисадмины настраивают iptables и прикрывают 8080 порт извне. Точнее они прикрывают все порты, к которым не нужен доступ из вне.

Если уж говорить на чистоту, то лично я не люблю заниматься администрированием и настройкой серверов. Каждый должен заниматься своим делом, пусть это делает линуксоид со стажем. Ещё раз повторюсь, здесь речь идет скорее о некой девелоперской конфигурации, т.к. сисадмин делает установку нормальной стабильной версии «на века», настраивает её и потом периодически накатывает обновления. Программисту же, в силу своей профессиональной деятельности, приходится периодически меняет настройки, тестировать, менять версии библиотек, конфиги, что-то накатывать/откатывать и делать другие непотребства с сервером, пока не добьется от сервера нужной работы.

С другой стороны, всегда нужно соблюдать технику безопасности.

— Не запускать от рута (даже если нужен 80-ый порт).
— Закрывать доступ к служебным портам.
— Не оставлять дефолтных паролей.
— Не запускать непонятных и непроверенных программ.

Источник

Оцените статью