Установка и настройка Tomcat 9 на Ubuntu server

В текущей статье рассматривается установка Java и Tomcat 9 на Ubuntu.

Tomcat представляет собой контейнер Java сервлетов, реализует спецификацию JSP и JSF.

Установка Java на Ubuntu server

Как подружить Java и Tomcat

Для начала необходимо установить Java:

sudo apt-get install default-jdk

Начнет устанавливаться Java и выглядеть это будет примерно следующим образом:

Java install

Командой java -version можно проверить, какая версия Java установилась:

java version

Установка Tomcat 9 на ubuntu server

Заходим на сайт https://tomcat.apache.org
Копируем ссылку на самую свежую версию tomcat (архив tar.gz):

wget tomcat

Создадим папку /opt в корневой директории:

sudo mkdir opt

Далее перейдем в папку opt командой cd /opt и выполняем команду на скачивание файла (у вас ссылка может быть другая — с другого сервера, ближе всего расположенного у вам):

sudo wget http://ftp.byfly.by/pub/apache.org/tomcat/tomcat-9/v9.0.6/bin/apache-tomcat-9.0.6.tar.gz

Данная команда загрузит tomcat в текущую папку.

Распакуем скачанный архив:

sudo tar xf apache-tomcat-9.0.6.tar.gz

И переименуем папку:

sudo mv apache-tomcat-9.0.6.tar.gz tomcat

Теперь надо добавить Tomcat в службы, чтобы его можно было запускать и останавливать. Для этого создадим файл tomcat.service:

nano /etc/systemd/system/tomcat.service

И добавим в него строки:

[Unit]
Description=Tomcat9
After=network.target

[Service]
Type=forking

Environment=CATALINA_PID=/opt/tomcat/tomcat9.pid
Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment="CATALINA_OPTS=-Xms512m -Xmx512m"
Environment="JAVA_OPTS=-Dfile.encoding=UTF-8 -Dnet.sf.ehcache.skipUpdateCheck=true -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+UseParNewGC"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

Обратите внимание tomcat находится в папке /opt. Так же необходимо убедиться, что путь JAVA_HOME здесь прописан правильно.

Сохраняем файл и выполняем команды:

systemctl daemon-reload
service tomcat start
service tomcat status

Получаем результат:

Loaded: loaded (/etc/systemd/system/tomcat.service: disabled; vendor preset: enabled)
Active: active (running) since Mon 2018-04-21 10:03:18 MSK; 5s ago

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

Tomcat9

Как создать пользователя Tomcat

Чтобы создать пользователя Tomcat необходимо открыть файл tomcat-users.xml, находящийся в папке conf, затем создать роли:

  • manager-gui
  • manager-script
  • manager-jmx
  • manager-status

И прописать пользователя, присвоив ему эти роли:

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user password="s3cret" roles="manager-gui,manager-script,admin" username="tomcat"/>

Однако после произведенных действий все равно не будет доступа к списку приложений, к статусу сервера и т.д.

Чтобы получить такой доступ необходимо настроить список адресов, с которых будет разрешен вход в систему и просмотр такой информации.

Адреса можно задавать по очереди, разделяя их символом «|». Так же можно прописать регулярное выражение, захватывающее диапазон адресов.

Делаются эти настройки в файле webapps/manager/META-INF/context.xml:

<?xml version="1.0" encoding="UTF-8"?>
<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\.0\.10[14]" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

Часть |192\.168\.0\.10[14] была добавлена мной. Она означает, что заходить в систему разрешено только с адресов 192.168.0.101 и 192.168.0.104.

Настройка HTTPS на Tomcat

После всех приведенных действий у нас доступен интерфейс tomcat по протоколу http.

Так же доступ ко всем приложениям, расположенным на этом сервере, доступ будет осуществляться по протоколу http, что не есть безопасно, так как туда будут отправляться get и post запросы, которые перехватить труда не составляет.

Чтобы настроить https необходимо создать файл .keystore утилитой keytool, входящей в состав jdk. На Linux и на Windows эта операция делается примерно одинаково. Заходим в папку bin нашего jdk и выполняем команду:

keytool -genkey -alias yourname -keyalg RSA -keystore c:\yournamekeystore

Заполняете все данные, которые запросит утилита.

Далее открываете файл conf/server.xml в папке с tomcat и добавляете следующие строки:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
              maxThreads="150" scheme="https" secure="true"
              clientAuth="false" sslProtocol="TLS" 
        keystoreFile="yournamekeystore_path"
        keystorePass="password" />

И перезапускаете tomcat:

service tomcat restart

Теперь вы сможете зайти в интерфейс tomcat по следующему адресу: https://адрес_сервера:8443

Добавить комментарий

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