Tomcat - это веб-сервер с открытым исходным кодом для приложений на основе Java, разработанный Apache Foundation. Мы используем Tomcat для развертывания приложений Java Servlet и JSP. В этом его отличие от "широкопрофильных" веб-серверов Apache и Nginx, - он узкоспециализирован на Java. Чтобы узнать больше об Apache Tomcat, посетите официальный сайт Apache Tomcat. Apache Tomcat 9 - это последняя версия, доступная для установки веб-сервера Tomcat в настроящее время.
Предварительные требования
- доступ к оболочке (shell)
- иметь привилегированный аккаунт (права на выполнение sudo)
Шаг 1 - Установите Java
Наличие Java является основным требованием для запуска Tomcat 9 в системе CentOS 8 Linux. Убедитесь, что в вашей системе установлена Java 8 или более поздняя версия. Используйте следующую команду для установки OpenJDK в вашей системе.
$ sudo dnf install openjdk
Затем проверьте установленную версию Java:
$ java -version
openjdk version "11.0.4" 2019-07-16 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.4+11-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.4+11-LTS, mixed mode, sharing)
Шаг 2 - Создание пользователя Tomcat
Многие системные администраторы запускают Tomcat от имени пользователя root, что не является правильным способом в целях безопасности. Итак, создайте отдельную учетную запись для запуска вашего сервера Tomcat в вашей системе.
$ sudo useradd -m -d /opt/tomcat -U -s /bin/false tomcat
Приведенная выше команда создаст пользователя с именем «tomcat
» с группой «tomcat
».
Шаг 3 - Загрузите дистрибутив Tomcat 9
Apache Tomcat доступен на официальных страницах загрузки, где вы можете выбрать ближайших пиров для быстрой загрузки Tomcat. Чтобы загрузить архивный файл Apache Tomcat с официального сервера загрузки Apache tomcat, используйте следующую команду:
$ wget https://www-us.apache.org/dist/tomcat/tomcat-9/v9.0.30/bin/apache-tomcat-9.0.30.tar.gz
Затем распакуйте архив и скопируйте все файлы в домашнюю директорию tomcat.
$ tar xzf apache-tomcat-9.0.30.tar.gz
$ sudo mv apache-tomcat-9.0.30/* /opt/tomcat/
Кроме того, установите правильные права на все файлы и директории.
$ sudo chown -R tomcat:tomcat /opt/tomcat/
Шаг 4 - Включить Host/Manager для удаленного IP
По умолчанию Tomcat manager и host-manager, страницам разрешен доступ только с локального хоста. Чтобы получить доступ к этим страницам из удаленной системы, вы должны указать свой IP-адрес или диапазон IP-адресов в файле context.xml
для конкретного приложения.
- Manager -
/opt/tomcat/webapps/manager/META-INF/context.xml
- Host Manager -
/opt/tomcat/webapps/host-manager/META-INF/context.xml
Отредактируйте вышеуказанные файлы по одному и добавьте IP-адрес (например, 192.168.1.10
) или диапазон IP-адресов, чтобы разрешить доступ. Для справки смотрите скриншот ниже.
Сохраните файлы и закройте.
Шаг 5 - Настройка учетных записей пользователей
Теперь настройте ваш tomcat с учетными записями пользователей для безопасного доступа к страницам администратора / менеджера. Для этого отредактируйте файл /opt/tomcat/conf/tomcat-users.xml
в своем редакторе и вставьте следующий код в теги <tomcat-users>
</ tomcat-users>
. Мы рекомендуем изменить пароль в приведенной ниже конфигурации на надежный (и уж точно не тот, который по умолчанию)!
<!-- user manager can access only manager section -->
<role rolename="manager-gui" />
<user username="manager" password="_SECRET_PASSWORD_" roles="manager-gui" />
<!-- user admin can access manager and admin section both -->
<role rolename="admin-gui" />
<user username="admin" password="_SECRET_PASSWORD_" roles="manager-gui,admin-gui" />
Сохраните файл и закройте.
Шаг 6 - Создайте стартовый скрипт Tomcat
Tomcat предоставляет bash-скрипты для запуска и остановки сервиса. Но, чтобы упростить задачу, создайте сценарий запуска, который будет управлять Tomcat в качестве службы systemd
. Давайте создадим файл tomcat.service
со следующим содержимым:
$ sudo vim /etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat 9
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"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
Перезагрузите службу демона systemd
, чтобы применить изменения.
$ sudo systemctl daemon-reload
Затем включите и запустите службу Tomcat в вашей системе.
$ sudo systemctl enable tomcat.service
$ sudo systemctl start tomcat.service
Шаг 7 - Доступ к Tomcat в браузере
Сервер Tomcat работает на порту 8080
по умолчанию. Чтобы получить доступ к Tomcat через веб-браузер, подключите сервер к порту 8080
.
Если вы подключаетесь с локальной машины, используйте localhost
. Для подключения с удаленного компьютера используйте IP-адрес системы с портом:
http://localhost:8080
Выводы
У вас работает сервер Tomcat 9 в системе CentOS 8. Возможно, вам потребуется создать виртуальный хост или настроить сертификат SSL в Tomcat, но это уже тема отдельных статей.