Поиск по сайту:

Как установить Apache Tomcat с обратным прокси-сервером Nginx на AlmaLinux 9


Apache Tomcat или «Tomcat» — это бесплатный контейнер Java-сервлетов с открытым исходным кодом для кода и приложений Java. Первоначально созданный Sun Microsystem, позже передал базу кода Apache Software Foundation и распространил ее по лицензии Apache v2. Apache Tomcat предоставляет среду HTTP-сервера «чистой Java», в которой может выполняться код Java. Это также реализация технологий JavaServer Pages, Java Expression Language и WebSocket.

Apache Tomcat — одна из самых популярных реализаций Java-сервлетов. Он поддерживает SSL для защиты конфиденциальных данных, таких как аутентификация. Кроме того, он обладает небольшими серверными ресурсами и кроссплатформенностью, поэтому его можно установить в Unix-подобных операционных системах, Windows и macOS.

В следующем руководстве мы покажем вам установку Apache Tomcat с Nginx в качестве обратного прокси-сервера на сервере AlmaLinux 9. Вы установите Apache Tomcat через двоичный пакет, затем установите Nginx и настроите конфигурацию блока сервера для обратного прокси.

Предварительные условия

Прежде чем начать, убедитесь, что у вас есть следующее:

  • Сервер AlmaLinux 9.
  • Пользователь без полномочий root с правами администратора.

Установка Java OpenJDK

Перед установкой Tomcat вы должны установить Java JDK на свой сервер AlmaLinux. Для Apache Tomcat вы можете использовать Java JDK 11 или новее. В этом примере мы будем использовать Java OpenJDK 17, который по умолчанию доступен в репозитории AlmaLinux 9.

Чтобы установить OpenJDK 17, выполните приведенную ниже команду dnf. При запросе подтверждения введите y и нажмите ENTER.

sudo dnf install java-17-openjdk java-17-openjdk-devel

После установки Java OpenJDK выполните приведенную ниже команду java, чтобы проверить вашу версию OpenJDK.

java --version

Ниже вы можете видеть, что Java OpenJDK 17 установлена.

Загрузка Apache Tomcat 10

После установки Java OpenJDK вы загрузите и установите Apache Tomcat вручную через двоичный пакет. Поэтому перед началом установки посетите страницу загрузки Apache Tomcat и перейдите по ссылке для скачивания.

Для начала выполните приведенную ниже команду, чтобы создать нового системного пользователя tomcat с домашним каталогом по умолчанию /opt/tomcat.

sudo groupadd tomcat
sudo adduser -r -s /usr/sbin/nologin -g tomcat -b /opt/tomcat tomcat

Теперь загрузите двоичный пакет Apache Tomcat, используя приведенную ниже команду wget. На момент написания этой статьи последней версией Apache Tomcat была версия 10.1.18. Поэтому обязательно измените переменную VERSION на текущую версию Tomcat.

export VERSION=10.1.18
wget https://dlcdn.apache.org/tomcat/tomcat-10/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz

После завершения процесса загрузки создайте новый домашний каталог для пользователя tomcat /opt/tomcat и извлеките в него двоичный пакет Apache Tomcat.

mkdir -p /opt/tomcat
sudo tar -xf apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat

Наконец, выполните приведенную ниже команду, чтобы создать символическую ссылку каталога Tomcat на /opt/tomcat/latest. Затем измените владельца каталога /opt/tomcat «tomcat».

sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest
sudo chown -R tomcat:tomcat /opt/tomcat

Настройка Apache Tomcat как службы

После установки Apache Tomcat следующим шагом будет настройка новой службы systemd для Apache Tomcat. Таким образом, вы можете легко управлять Apache Tomcat с помощью утилиты systemctl. Кроме того, это гарантирует, что вы запустите сценарий для Tomcat в одном месте.

Создайте новый файл службы systemd /etc/systemd/system/tomcat10.service, используя следующую команду редактора nano.

sudo nano /etc/systemd/system/tomcat10.service

Вставьте следующую конфигурацию в качестве сценария службы Apache Tomcat systemd. В параметре CATALINA_OPTS обязательно настройте максимальный размер кучи для Apache Tomcat.

[Unit]
Description=Tomcat 10 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"
Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx2048M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
[Install]
WantedBy=multi-user.target

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

Теперь выполните следующую команду, чтобы перезагрузить менеджер systemd и применить новую службу tomcat10.

sudo systemctl daemon-reload

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

sudo systemctl enable tomcat10
sudo systemctl start tomcat10

После запуска выполните приведенную ниже команду, чтобы проверить службу tomcat10. Если все пойдет хорошо, вы должны увидеть работающую службу tomcat10.

sudo systemctl status tomcat10

При работающем Apache Tomcat выполните приведенную ниже команду firewall-cmd, чтобы открыть порт 8080, который используется Apache Tomcat.

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

Наконец, запустите веб-браузер и посетите IP-адрес сервера, а затем порт 8080 (http://192.168.5.50:8080). Если установка Apache Tomcat прошла успешно, вы должны получить индексную страницу по умолчанию, как показано ниже:

Настройка аутентификации в Apache Tomcat 10

На этом этапе вы установили Apache Tomcat, и теперь он работает. В этом разделе вы узнаете, как настроить и включить аутентификацию по паролю в Apache Tomcat.

Сначала запустите приведенную ниже команду редактора nano, чтобы открыть файл /opt/tomcat/latest/conf/tomcat-users.xml.

sudo nano /opt/tomcat/latest/conf/tomcat-users.xml

Добавьте следующую конфигурацию в раздел « ... ». И обязательно измените имя пользователя admin и пароль tomcatadmin по умолчанию на новые учетные данные.

<tomcat-users>
<!--
user: admin pass: tomcatadmin
-->
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="admin" password="tomcatadmin" roles="manager-gui, manager-script, manager-jmx, manager-status, admin-gui, admin-script"/>
</tomcat-users>

Сохраните и выйдите из файла, когда закончите.

Теперь откройте конфигурацию Apache Tomcat Manager и Host Manager, используя приведенную ниже команду редактора nano.

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

Добавьте комментарий '' к 'className="org.apache.catalina.valves.RemoteAddrValve"', чтобы разрешить доступ к как Apache Tomcat Manager, так и Host Manager из любой точки мира. См. конфигурацию ниже.

<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->

(Необязательно) Вы также можете указать IP-адреса, которые позволят вам получить доступ к Tomcat Manager и Host Manager, добавив свой IP-адрес, как показано ниже:

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|CLIENT-IP-ADDRESS" />

Сохраните файл и выйдите из редактора, когда закончите.

Когда все будет готово, вы можете перезапустить службу tomcat10, используя приведенную ниже команду, чтобы она вступила в силу. После выполнения ваш Apache Tomcat Manager и Host Manager будут работать с аутентификацией по паролю.

sudo systemctl restart tomcat10

Вернитесь в браузер и посетите URL-адрес Apache Tomcat Manager по адресу http://192.168.5.50:8080/manager/. При появлении запроса на базовую аутентификацию по паролю введите пользователя и пароль администратора Apache Tomcat, затем нажмите «Войти».

Если у вас правильный пользователь и пароль администратора, вы должны увидеть панель управления Apache Tomcat Manager следующим образом:

Наконец, посетите URL-адрес диспетчера хостов Apache Tomcat по адресу http://192.168.5.50:8080/host-manager/ и войдите в систему, используя пользователя и пароль администратора Tomcat, когда будет предложено пройти аутентификацию. Вы увидите панель управления Host Manager, как показано ниже:

Настройте Nginx в качестве обратного прокси

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

Чтобы установить Nginx на ваш сервер AlmaLinux, выполните приведенную ниже команду dnf. Введите Y для подтверждения и продолжения установки.

sudo dnf install nginx

После установки Nginx создайте новую конфигурацию блока сервера /etc/nginx/conf.d/tomcat.conf с помощью команды редактора nano.

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

Добавьте следующий блок сервера, чтобы настроить Nginx в качестве обратного прокси-сервера для Apache Tomcat, работающего на порту 8080.

server {
listen 80;
server_name tomcat.hwdomain.io;
access_log /var/log/nginx/tomcat-access.log;
error_log /var/log/nginx/tomcat-error.log;
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

Затем выполните приведенную ниже команду systemctl, чтобы запустить и включить веб-сервер Nginx.

sudo systemctl start nginx
sudo systemctl enable nginx

После запуска Nginx выполните следующую команду, чтобы проверить службу Nginx. Если он работает, вы увидите активный выход (работает).

sudo systemctl status nginx

Ниже вы можете видеть, что Nginx включен и работает на вашем сервере AlmaLinux.

Настройка брандмауэра

Если Apache Tomcat работает под управлением Nginx, вам необходимо открыть HTTP-порт 0 в конфигурации брандмауэра.

Запустите следующую команду, чтобы открыть службу HTTP и перезагрузить firewalld в вашей службе AlmaLinux.

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload

Теперь проверьте список правил firewalld, используя команду ниже.

sudo firewall-cmd --list-all

Убедитесь, что служба HTTP для веб-сервера Nginx включена.

Теперь вернитесь в свой веб-браузер и посетите локальное доменное имя вашего блока сервера Nginx, например http://tomcat.hwdomain.io/. Если настройка обратного прокси-сервера Nginx прошла успешно, вы увидите индексную страницу Apache Tomcat по умолчанию.

Теперь перейдите к URL-адресу Tomcat Manager через http://tomcat.hwdomain.io/manager. При появлении запроса на аутентификацию введите имя пользователя и пароль Apache Tomcat, затем нажмите Войти.

Если у вас правильный пользователь и пароль, вы увидите панель управления Apache Tomcat Manager, как показано ниже:

Наконец, перейдите по URL-адресу диспетчера хостов Apache Tomcat http://tomcat.hwdomain.io/host-manager/, и вы увидите панель управления диспетчера хостов Apache Tomcat, подобную следующей:

Заключение

Поздравляем! Вы успешно установили Apache Tomcat на сервер AlmaLinux 9. Вы установили Apache Tomcat 10 вручную через двоичный пакет на сервере AlmaLinux. В дополнение к этому вы также настроили Nginx в качестве обратного прокси-сервера для вашей установки Apache Tomcat. А также настроил firewalld для открытия HTTP-порта.

Статьи по данной тематике: