Как установить Apache Tomcat 9 на CentOS 8 / RHEL 8

Как установить Apache Tomcat 9 на CentOS 8 / RHEL 8

 

В этом руководстве мы обсудим, как установить Apache Tomcat 9 на RHEL 8 / CentOS 8. Apache Tomcat — это HTTP-сервер с открытым исходным кодом, поддерживающий Java, разработанный Apache Software Foundation. Он используется для выполнения специальных программ Java, известных как « Java Servlet » и «Java Server Pages (JSP) ».

Поддержка Apache Tomcat 9:

  • Сервлет Java 4.0
  • JavaServer Pages 2.4
  • Унифицированный язык выражений Java 3.1
  • и Java API для спецификаций WebSocket 2.0.

Основная зависимость Apache Tomcat 9.0.x — это Java 8 или новее. Поэтому эту зависимость необходимо установить перед загрузкой и установкой Tomcat Server.

 

Apache Tomcat 9 на RHEL 8 / CentOS 8

Мы выполним ручную установку, которая лучше всего подходит для пользователей, плохо знакомых с Linux. Шаги, необходимые для установки рабочего сервера Tomcat 9 на RHEL / CentOS 8:

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

Используйте наше руководство ниже, чтобы установить Java на сервер RHEL / CentOS.

Как установить Java 11 (OpenJDK 11) на RHEL / CentOS 8

Как установить Java 11 на CentOS 7

Шаг 2: Создайте пользователя и группу tomcat

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

sudo groupadd --system tomcat
sudo useradd -d /usr/share/tomcat -r -s /bin/false -g tomcat tomcat

Шаг 3. Установите Tomcat 9 в Linux RHEL / CentOS 8

Проверьте последнюю версию Tomcat 9. Сохраните номер версии в VERпеременной и перейдите к загрузке.

sudo yum -y install wget
export VER="9.0.30"
wget https://archive.apache.org/dist/tomcat/tomcat-9/v${VER}/bin/apache-tomcat-${VER}.tar.gz

Распакуйте загруженный файл с помощью tar.

sudo tar xvf apache-tomcat-${VER}.tar.gz -C /usr/share/

Создайте символическую ссылку на извлеченные данные tomcat.

sudo ln -s /usr/share/apache-tomcat-$VER/ /usr/share/tomcat

Если вы загружаете более новую версию Tomcat, просто обновите символическую ссылку на папку новой версии.

Установите правильные права доступа к каталогу.

sudo chown -R tomcat:tomcat /usr/share/tomcat
sudo chown -R tomcat:tomcat /usr/share/apache-tomcat-$VER/

В /usr/share/tomcatкаталоге есть следующие подкаталоги:

  • bin:содержит  двоичные файлы  и  скрипты (например,startup.sh а также shutdown.sh для Unix и Mac OS X).
  • conf : содержит общесистемные   файлы конфигурации , напримерв виде server.xmlweb.xml, а также context.xml.
  • webapps : содержит  развертываемые веб-приложения  . Вы также можете разместить здесь файл WAR (Webapp Archive) для развертывания.
  • lib : содержит файлы JAR общесистемной библиотеки Tomcat, доступные для всех веб-приложений. Вы также можете разместить здесь внешний файл JAR (например, драйвер MySQL JDBC).
  • logs : содержит файлы журнала Tomcat. Возможно, вам потребуется проверить здесь сообщения об ошибках.
  • work : рабочий каталог Tomcat, используемый JSP для преобразования JSP в сервлет.

Шаг 4. Настройте службу Tomcat 9 Systemd

Создайте новую службу systemd для Tomcat.

sudo vim /etc/systemd/system/tomcat.service

С конфигурацией ниже:

[Unit]
Description=Tomcat Server
After=syslog.target network.target

[Service]
Type=forking
User=tomcat
Group=tomcat

Environment=JAVA_HOME=/usr/lib/jvm/jre
Environment='JAVA_OPTS=-Djava.awt.headless=true'
Environment=CATALINA_HOME=/usr/share/tomcat
Environment=CATALINA_BASE=/usr/share/tomcat
Environment=CATALINA_PID=/usr/share/tomcat/temp/tomcat.pid
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M'
ExecStart=/usr/share/tomcat/bin/catalina.sh start
ExecStop=/usr/share/tomcat/bin/catalina.sh stop

[Install]
WantedBy=multi-user.target

Обновите CATALINA_OPTSзначения с учетом ваших ограничений памяти для службы Tomcat.

Запустить и включить службу.

sudo systemctl daemon-reload
sudo systemctl start tomcat
sudo systemctl enable tomcat

Проверьте статус службы с помощью следующей команды:

$ systemctl status tomcat
 ● tomcat.service - Tomcat
    Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: disabled)
    Active: active (running) since Sat 2018-12-29 11:18:44 EAT; 29s ago
   Process: 31508 ExecStart=/usr/share/tomcat/bin/catalina.sh start (code=exited, status=0/SUCCESS)
  Main PID: 31514 (java)
     Tasks: 50 (limit: 11510)
    Memory: 92.2M
    CGroup: /system.slice/tomcat.service
            └─31514 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.manager=org>
 Dec 29 11:18:44 rhel8.local systemd[1]: Starting Tomcat…
 Dec 29 11:18:44 rhel8.local systemd[1]: Started Tomcat.

Шаг 5. Настройте брандмауэр

Разрешить порт, используемый tomcat на брандмауэре — TCP-порт 8080.

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

Шаг 6. Настройте аутентификацию Tomcat

К этому моменту вы проделали огромную работу по установке и настройке Tomcat. Отсутствует конфигурация пользователей, которые используются для доступа к веб-интерфейсу управления Tomcat.

Отредактируйте файл конфигурации пользователей:

sudo vi /usr/share/tomcat/conf/tomcat-users.xml

Добавить строку ниже перед </tomcat-users>

<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="MyStrongPassword" fullName="Administrator" roles="admin-gui,manager-gui"/>

Замените MyStrongPasswordжелаемым паролем администратора. См. ниже

Шаг 7. Настройте прокси-сервер Tomcat

Мы будем использовать Apache httpd в качестве прокси для контейнера приложения Apache Tomcat. Установите пакет httpd, используя команду ниже.

sudo yum -y install httpd

Создайте VirtualHost для доступа к веб-интерфейсу администратора Tomcat — /etc/httpd/conf.d/tomcat_manager.conf

<VirtualHost *:80>
    ServerAdmin root@localhost
    ServerName tomcat.example.com
    DefaultType text/html
    ProxyRequests off
    ProxyPreserveHost On
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/
</VirtualHost>

tomcat.example.com должно быть значением вашего имени сервера tomcat.

Для коннектора AJP это будет такая конфигурация:

<VirtualHost *:80>
  ServerName example.com

  ProxyRequests Off
  ProxyPass / ajp://localhost:8009/
  ProxyPassReverse / ajp://localhost:8009/
</VirtualHost>

Настройте SELinux для Apache для доступа к Tomcat.

sudo setsebool -P httpd_can_network_connect 1
sudo setsebool -P httpd_can_network_relay 1
sudo setsebool -P httpd_graceful_shutdown 1
sudo setsebool -P nis_enabled 1

Перезапустить службу httpd

sudo systemctl restart httpd && sudo systemctl enable httpd

Шаг 8: Доступ к веб-интерфейсу Tomcat

Используйте свое доменное имя, настроенное на VirtualHost, для доступа к управлению Tomcat interface.

Вам необходимо пройти аутентификацию, чтобы просматривать состояние сервера и управлять приложениями Tomcat.

Разделы состояния сервера и управления приложениями выглядят так, как показано на рисунке.

В разделе «Диспетчер веб-приложений» вы можете просматривать, развертывать приложения WAR, управлять SSL и диагностировать приложения.

Раздел Tomcat Virtual Host Manager позволяет вам создавать, удалять и управлять виртуальными хостами Tomcat.

Заключение

Вы успешно установили Tomcat 9 в свою систему RHEL / CentOS 8. Посетите официальную документацию Apache Tomcat 9, чтобы узнать больше о конфигурации и администрировании Apache Tomcat.