Как установить Apache Tomcat 10 на CentOS 8/7 | Rocky Linux 8

Как установить Apache Tomcat 10 на CentOS 8/7 | Rocky Linux 8

 

Apache Tomcat — это сервлет Java с открытым исходным кодом и контейнер страницы сервера Java. Это позволило разработчикам создавать и развертывать динамические приложения на основе Java. Сервлеты Java — это небольшие программы Java, определяющие, как сервер обрабатывает запросы и ответы. Разработчики пишут сервлеты, а Tomcat берет на себя всю работу по бэкэнду и маршрутизации. Apache Tomcat с открытым исходным кодом вносят разработчики со всего мира.

Особенности Apache Tomcat 10

Apache Tomcat 10 — это последняя версия, и приложения, работающие с версией 9 и более ранней, должны быть изменены, чтобы работать в версии 10. Некоторые из изменений, внесенных в версию 10, включают:

  • Переработайте защиту от накладных расходов HTTP / 2, чтобы снизить вероятность ложных срабатываний.
  • Обновление до компилятора Eclipse JDT 4.20.
  • Исправить ошибки при компиляции JSP в предыдущем выпуске

Установка Apache Tomcat 10 на CentOS 8 | 7 и Rocky Linux 8

Для установки Apache Tomcat необходимо выполнить несколько шагов, как описано ниже:

Шаг 1. Обновление системы

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

sudo dnf update
sudo dnf upgrade

Шаг 2. Задайте имя хоста и файл хостов

Задайте имя хоста сервера и настройте файл хостов с помощью следующих команд

$ sudo hostnamectl set-hostname tomcat.example.com
$ sudo vim /etc/hosts
192.168.50.3tomcat.example.com

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

sudo reboot

Шаг 3: Установите OpenJDK на CentOS / Rocky

Нам нужно установить среду выполнения OpenJDK, как показано ниже. Я собираюсь установить версию 11, но вы также можете выбрать версию 8. Для разработчиков они могут выбрать среду разработки.

# OpenJDK 11
sudo dnf install java-11-openjdkjava-11-openjdk-devel

# OpenJDK 8
sudo dnf install java-1.8.0-openjdkjava-1.8.0-openjdk-devel

Шаг 4. Создайте пользователя без полномочий root и каталог для Tomcat

Нам нужно создать пользователя без полномочий root, который будет иметь доступ только к Tomcat и не будет использовать его для других целей. Нам также нужен каталог для размещения файлов tomcat.

# Add Tomcat group
sudo groupadd tomcat

# Create Tomcat directory
sudo mkdir /opt/tomcat

# Create tomcat user, disable login and give rights
sudo useradd -s /bin/nologin -g tomcat -d /opt/tomcat tomcat

Шаг 5: Загрузите Tomcat 10 на CentOS 8 | 7 / Rocky Linux 8

Теперь посетите официальный сайт Apache Tomcat, чтобы загрузить последнюю версию Tomcat. Оказавшись на странице, щелкните правой кнопкой мыши файл .tar.gz и скопируйте адрес ссылки.

Как установить Apache Tomcat 10 на CentOS 8

Используйте wget для загрузки двоичных файлов Apache Tomcat, как показано ниже.

sudo dnf install wget
wget https://downloads.apache.org/tomcat/tomcat-10/v10.0.8/bin/apache-tomcat-10.0.8.tar.gz

Извлеките заархивированный файл и скопируйте извлеченные файлы в ранее созданный каталог tomcat.

sudo tar -xvf apache-tomcat-10.0.8.tar.gz -C /opt/tomcat --strip-components=1

Шаг 6. Установите разрешения для каталогов Tomcat

Нам нужно разрешить пользователю tomcat читать файлы в каталоге tomcat. Также разрешите выполнение сценариев в каталоге.

sudo chown -R tomcat: /opt/tomcat
sudo sh -c 'chmod +x /opt/tomcat/bin/*.sh'

Шаг 7. Создайте файл Apache Tomcat Systemd

Мы можем создать файл systemd для запуска и остановки Apache Tomcat. Это также очень полезно для автозапуска tomcat при перезагрузке системы. Нам необходимо передать место установки java в качестве переменной в файле systemd. Чтобы получить путь, выполните следующую команду:

$ sudo alternatives --list | grep ^java
java   auto    /usr/lib/jvm/java-11-openjdk-11.0.12.0.7-0.el8_4.x86_64/bin/java

Приступите к созданию служебного файла apache tomcat

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

Вставьте следующий контент

[Unit]
Description=Apache Tomcat Web Application Container
Wants=network.target
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.12.0.7-0.el8_4.x86_64

Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1G -Djava.net.preferIPv4Stack=true'
Environment='JAVA_OPTS=-Djava.awt.headless=true'

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
SuccessExitStatus=143

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Шаг 8: Запустите и включите службу Tomcat

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

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

Подтвердите статус Tomcat, что он запущен

sudo systemctl status tomcat

 

Шаг 9: Настройте Tomcat Web Management

Apache Tomcat можно полностью управлять через веб-интерфейс. Нам нужно создать пользователя и пароль для доступа к управлению, как показано ниже:

sudo vim /opt/tomcat/conf/tomcat-users.xml

Добавьте выделенные строки между тегами <tomcat-users>, чтобы они выглядели, как показано:

<tomcat-users
...
<!--
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="must-be-changed" roles="tomcat"/>
  <user username="both" password="must-be-changed" roles="tomcat,role1"/>
  <user username="role1" password="must-be-changed" roles="role1"/>
-->
  <role rolename="admin-gui"/>
  <user username="admin" password="MyAdminPassword" roles="admin-gui"/>
  <role rolename="manager-gui"/>
  <user username="admin" password="MyManagerPassword" roles="manager-gui"/>
</tomcat-users>

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

Для связи с менеджером:

sudo vim  /opt/tomcat/webapps/manager/META-INF/context.xml

Введите удаленные IP-адреса для доступа к tomcat, разделенные вертикальной чертой. В моем случае 192.168.50.2 — это удаленный IP-адрес.

...
<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
          allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.50.2" />
...
</Context>

Для Host Manager;

sudo vim /opt/tomcat/webapps/host-manager/META-INF/context.xml

Добавить удаленный IP

...
<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.50.2" />
...
</Context>

Шаг 10. Разрешите Apache Tomcat через брандмауэр

Если вы используете активный брандмауэр, вам необходимо открыть порт Tomcat на брандмауэре.

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

На этом этапе вы успешно установили Apache Tomcat и можете протестировать его из браузера с http://<your-server-ip>:8080 . Вы должны увидеть открытую страницу ниже

Шаг 11. Настройте Nginx в качестве обратного прокси-сервера Apache Tomcat

В нашей установке мы собираемся использовать веб-сервер Nginx для доступа к нашему приложению Apache Tomcat.

Установите Nginx на CentOS 8 | Rocky Linux

Начнем с установки nginx

sudo dnf install -y nginx

Затем запустите и включите Nginx

sudo systemctl start nginx
sudo systemctl enable nginx

Создайте виртуальный хост Nginx для Apache Tomcat

Создайте файл конфигурации виртуального хоста, как показано ниже:

sudo vim /etc/nginx/conf.d/tomcat.conf

Добавьте следующий контент

server {
  listen          80;
  server_name     example.com;
  root            /opt/tomcat/webapps/;


  location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:8080/;
  }
}

Тестовая конфигурация nginx

sudo nginx -t

Перезагрузите nginx

sudo systemctl restart nginx

Теперь перейдите в свой браузер и Apache Tomcat, используя имя хоста сервера. В моем случае http://example.com

Если вы нажмете на Server Status или Manager App , вам будет предложено ввести имя пользователя и пароль для доступа.

Введите имя пользователя и пароль администратора или менеджера, которые вы настроили в tomcat-users.xml, и вы готовы использовать веб-интерфейс Apache Tomcat. Вот и все. Вы успешно установили Apache Tomcat на CentOS 8 | 7 и Rocky Linux.

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

одиннадцать + один =