Tomcat — это реализация с открытым исходным кодом технологий Java Servlet, JavaServer Pages, Java Expression Language и Java WebSocket.
В этом руководстве описаны действия, необходимые для установки Tomcat 9.0 на CentOS 7.
Содержание
Подготовка
Пользователь, под которым вы входите, должен иметь права sudo, чтобы иметь возможность устанавливать пакеты.
Установить OpenJDK
Tomcat 9 требует Java SE 8 или новее. Мы установим OpenJDK, реализацию платформы Java с открытым исходным кодом, которая является средой разработки и выполнения Java по умолчанию в CentOS 7.
Установите Java , набрав следующую команду:
sudo yum install java-1.8.0-openjdk-devel
Создать пользователя системы Tomcat
Запуск Tomcat от имени пользователя root представляет собой угрозу безопасности и не считается оптимальной практикой.
Мы создадим нового системного пользователя и группу с домашним каталогом /opt/tomcat
которые будут запускать службу Tomcat:
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Скачать Tomcat
Мы загрузим последнюю версию Tomcat 9.0.x со страницы загрузок Tomcat .
На момент написания последней версией Tomcat является 9.0.27
. Прежде чем перейти к следующему шагу, вам следует проверить страницу загрузки Tomcat 9, чтобы узнать, доступна ли более новая версия.
Перейдите в каталог /tmp
и загрузите zip-файл Tomcat с помощью следующей команды wget :
cd /tmp
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz
Когда загрузка будет завершена, извлеките tar-файл :
tar -xf apache-tomcat-9.0.27.tar.gz
Переместите туда исходные файлы Tomcat в каталог /opt/tomcat
:
sudo mv apache-tomcat-9.0.27 /opt/tomcat/
Tomcat 9 часто обновляется. Чтобы иметь больший контроль над версиями и обновлениями, мы создадим символическую ссылку под названием latest
, которая указывает на каталог установки Tomcat:
sudo ln -s /opt/tomcat/apache-tomcat-9.0.27 /opt/tomcat/latest
Пользователь tomcat, которого мы ранее настроили, должен иметь доступ к каталогу установки tomcat.
Выполните следующую команду, чтобы изменить владельца каталога на пользователя и группу tomcat:
sudo chown -R tomcat: /opt/tomcat
Сделайте скрипты внутри каталога bin
исполняемыми, введя следующую команду chmod
:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
Создайте файл модуля systemd
Чтобы запустить Tomcat как службу, откройте текстовый редактор и создайте tomcat.service
модуля 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
Сохраните и закройте файл.
Сообщите systemd о том, что мы создали новый файл модуля, набрав:
sudo systemctl daemon-reload
Включите и запустите службу Tomcat:
sudo systemctl enable tomcat
sudo systemctl start tomcat
Проверьте статус службы с помощью следующей команды:
sudo systemctl status tomcat
● tomcat.service - Tomcat 9 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2018-11-15 20:47:50 UTC; 4s ago
Process: 1759 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 1767 (java)
CGroup: /system.slice/tomcat.service
Настройте брандмауэр
Если ваш сервер защищен брандмауэром и вы хотите получить доступ к интерфейсу tomcat извне локальной сети, вам необходимо открыть порт 8080
.
Используйте следующие команды, чтобы открыть нужный порт:
sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
8080
только для вашей внутренней сети.Настройка веб-интерфейса управления Tomcat
На этом этапе Tomcat установлен, и мы можем получить к нему доступ с помощью веб-браузера через порт 8080
, но мы не можем получить доступ к интерфейсу веб-управления, потому что мы еще не создали пользователя.
Пользователи Tomcat и их роли определены в tomcat-users.xml
.
Если вы откроете файл, вы заметите, что он заполнен комментариями и примерами, описывающими, как настроить файл.
sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
Чтобы добавить нового пользователя, который сможет получить доступ к веб-интерфейсу tomcat (manager-gui и admin-gui), вам необходимо определить пользователя в tomcat-users.xml
как показано ниже. Убедитесь, что вы изменили имя пользователя и пароль на более безопасные:
<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 настроен на разрешение доступа только с локального хоста. Если вы хотите иметь доступ к веб-интерфейсу с удаленного 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" />
-->
</Context>
<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-адрес 41.41.41.41
и вы хотите разрешить доступ только с этого IP- 41.41.41.41
:
<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|41.41.41.41" />
</Context>
<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|41.41.41.41" />
</Context>
Список разрешенных IP-адресов представляет собой список, разделенный вертикальной чертой |
. Вы можете добавить отдельные IP-адреса или использовать регулярные выражения.
После этого перезапустите службу Tomcat, чтобы изменения вступили в силу:
sudo systemctl restart tomcat
Проверить установку
Откройте браузер и введите: http://<your_domain_or_IP_address>:8080
После успешной установки должен появиться экран, подобный следующему:
Панель управления диспетчером веб-приложений Tomcat доступна по адресу http://<your_domain_or_IP_address>:8080/manager/html
. Отсюда вы можете развертывать, отменять развертывание, запускать, останавливать и перезагружать свои приложения.
Панель управления диспетчером виртуальных хостов Tomcat доступна по адресу http://<your_domain_or_IP_address>:8080/host-manager/html
. Отсюда вы можете создавать, удалять виртуальные хосты Tomcat и управлять ими.
Выводы
Вы успешно установили Tomcat 9.0 в своей системе CentOS 7 и узнали, как получить доступ к интерфейсу управления Tomcat. Теперь вы можете посетить официальную документацию Apache Tomcat 9.0 и узнать больше о функциях Apache Tomcat.
Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.