Введение
Apache Tomcat — это реализация Java Servlet, JavaServer Pages, Java Expression Language и Java WebSocket с открытым исходным кодом. На сегодняшний день это одно из наиболее часто используемых веб-приложений и серверов в мире. Tomcat прост в использовании и имеет солидную экосистему надстроек.
В этом руководстве объясняется, как установить Tomcat 9.0 на CentOS 8.
Если вы хотите установить Tomcat на удаленный сервер, продолжайте чтение, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.
Подключение к серверу
Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:
ssh root@IP_DEL_SERVER
Далее вам нужно будет ввести пароль пользователя root.
Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:
ssh nome_utente@IP_DEL_SERVER
Затем вам будет предложено ввести пароль пользователя.
Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Установить Java
Tomcat 9 требует Java SE 8 или более поздней версии. Установите OpenJDK 11, реализацию платформы Java с открытым исходным кодом.
Прежде чем продолжить, установите следующие полезные инструменты, чтобы правильно пройти обучение:
sudo dnf install wget nano tar
Выполните следующую команду от имени пользователя root или пользователя с привилегиями sudo, чтобы установить Java:
sudo dnf install java-11-openjdk-devel
После завершения установки проверьте ее, проверив версию Java:
java -version
Вывод должен выглядеть так:
openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)
Создать системного пользователя
Запуск Tomcat под пользователем root представляет угрозу безопасности. Мы создадим нового системного пользователя и группу с домашним каталогом /opt/tomcat
, который будет запускать службу Tomcat. Для этого введите следующую команду:
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Скачать Томкэт
Бинарный дистрибутив Tomcat доступен для загрузки со страницы загрузок Tomcat.
На момент написания статьи это последняя версия Tomcat 9.0.30
. Прежде чем перейти к следующему шагу, проверьте страницу загрузки Tomcat 9, чтобы узнать, доступна ли более новая версия.
Загрузите zip-файл Tomcat с помощью wget
в каталог /tmp
:
VERSION=9.0.30
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz -P /tmp
После завершения загрузки извлеките файл tar в каталог /opt/tomcat
:
sudo tar -xf /tmp/apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat/
Tomcat регулярно обновляется. Чтобы иметь больший контроль над версиями и обновлениями, мы создадим символическую ссылку с именем latest
, которая указывает на каталог установки Tomcat:
sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest
Ранее созданный системный пользователь должен иметь доступ к каталогу установки Tomcat. Измените владельца каталога на пользователя и группу tomcat:
sudo chown -R tomcat: /opt/tomcat
Сделайте сценарии оболочки исполняемыми внутри каталога bin
:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
Эти сценарии используются для запуска и остановки Tomcat.
Создайте файл диска Systemd
Вместо запуска и остановки сервера Tomcat вручную мы настроим его как службу. Откройте текстовый редактор и создайте файл tomcat.service
для диска в каталоге /etc/systemd/system/
:
sudo nano /etc/systemd/system/tomcat.service
Вставьте следующее содержимое:
[Unit]
Description=Tomcat 9 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
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 -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
Сохраните и закройте файл, нажав CTRL + X, затем Y, чтобы сохранить изменения, а затем ENTER, если вы используете nano.
Перезапустите службу systemd, набрав:
sudo systemctl daemon-reload
Включите и запустите службу Tomcat:
sudo systemctl enable --now tomcat
Проверить статус услуги:
sudo systemctl status tomcat
Вывод должен показать, что сервер Tomcat включен и работает:
● tomcat.service - Tomcat 9 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-01-18 17:05:05 CET; 3s ago
Process: 3192 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCC>
Main PID: 3199 (java)
Tasks: 15 (limit: 12251)
Memory: 60.2M
CGroup: /system.slice/tomcat.service
└─3199 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/opt/tomcat>
Настроить брандмауэр
Если сервер находится за брандмауэром и вы хотите получить доступ к интерфейсу Tomcat из-за пределов локальной сети, вам нужно открыть порт 8080
.
Используйте следующие команды, чтобы открыть нужную дверь:
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload
Как правило, при запуске Tomcat в производственной среде необходимо использовать балансировщик нагрузки или обратный прокси -сервер. Доступ к порту 8080
рекомендуется предоставлять только внутренней сети.
Настройте веб-интерфейс управления Tomcat.
На этом этапе вы должны иметь доступ к Tomcat с помощью веб-браузера на порту 8080
. Веб-интерфейс управления недоступен, потому что мы еще не создали пользователя.
Пользователи и роли Tomcat определяются в tomcat-users.xml
.
Если вы откроете файл, вы заметите, что он заполнен комментариями и примерами, описывающими, как настроить файл.
sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
Пользователи Tomcat определяются как пользователь в tomcat-users.xml
. Чтобы создать нового пользователя с доступом к веб-интерфейсу Tomcat (manager-gui и admin-gui), отредактируйте файл, как показано ниже. Убедитесь, что вы изменили свое имя пользователя и пароль на что-то более безопасное.
Раскомментируйте и отредактируйте следующие строки:
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
Следовательно:
<tomcat-users>
<!--
Comments
-->
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>
Сохраните и закройте файл.
По умолчанию веб-интерфейс управления Tomcat настроен на разрешение доступа только с локального хоста.
Если вам нужно получить доступ к веб-интерфейсу из любого места, откройте следующий файл:
sudo nano /opt/tomcat/latest/webapps/manager/META-INF/context.xml
<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" />
-->
</Context>
Закомментируйте или удалите следующую строку:
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
Следовательно:
<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" />
-->
</Context>
Сохраните и закройте файл.
Откройте следующий файл:
sudo nano /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
Закомментируйте или удалите следующую строку:
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
Следовательно:
<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" />
-->
</Context>
Сохраните и закройте файл.
Не рекомендуется разрешать доступ откуда угодно, поскольку это представляет угрозу безопасности.
Если вы хотите получить доступ к веб-интерфейсу только с определенного IP-адреса, вместо комментирования блоков добавьте в список свой публичный IP-адрес.
Допустим, ваш общедоступный IP-адрес — 42.42.42.42
, и вы хотите разрешить доступ только с этого IP-адреса.
Снова откройте предыдущие файлы:
sudo nano /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
<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|42.42.42.42" />
</Context>
Сохраните и закройте файл, откройте следующий:
opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
<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|42.42.42.42" />
</Context>
Сохраните и закройте файл.
Список разрешенных IP-адресов представляет собой список, разделенный вертикальной чертой |
. Вы можете добавить отдельные IP-адреса или использовать регулярные выражения.
По завершении перезапустите службу Tomcat, чтобы изменения вступили в силу:
sudo systemctl restart tomcat
Протестируйте установку
Откройте браузер и введите свой IP-адрес или доменное имя, указав 8080
в качестве порта, затем: http://TUO_IP_O_DOMINIO:8080
По завершении установки должен появиться главный экран Tomcat.
Панель управления Tomcat Web Application Manager позволяет развертывать, отменять развертывание, запускать, останавливать и перезагружать приложения, доступные по адресу: http://TUO_IP_O_DOMINIO:8080/manager/html
.
Панель управления виртуальным хостом Tomcat позволяет создавать, удалять и управлять виртуальными хостами Tomcat. Он доступен по адресу: http://TUO_IP_O_DOMINIO:8080/host-manager/html
.
Вывод
Мы показали вам, как установить Tomcat 9.0 на CentOS 8 и как получить доступ к интерфейсу управления Tomcat.
Для получения дополнительной информации об Apache Tomcat посетите страницу официальной документации.