Насколько вероятно, что вы порекомендуете FirstVDS своим друзьям?
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
×
ВЫ ПОСТАВИЛИ НАМ 8 ИЗ 10
×
«Хостер года»Национальная премия ЦОДы.рф
FirstVDS обладатель национальной премии ЦОДы.рф 2020/2021 в номинации «Хостер года»

FIRST VDS

Самый популярный VDS-хостинг в России

Apache Tomcat

Установка должна производится на чистый сервер, без панели ISPmanager. Для установки хорошо подойдёт шаблон Debian 10.

Перед установкой самого Tomcat необходимо создать пользователя для его работы, а также установить Java.

Создаём пользователя:

useradd tomcat -U -s /bin/false -d /opt/tomcat -m

Устанавливаем Java — для этого воспользуйтесь готовой инструкцией.

Перед установкой Tomcat нужно определиться с его версией. На официальной странице Apache Tomcat, слева есть список версий: выбираем нужную, например Tomcat 10, далее копируем ссылку на загрузку архива tar.gz.

Скачиваем архив:

wget https://apache-mirror.rbc.ru/pub/apache/tomcat/tomcat-10/v10.0.2/bin/apache-tomcat-10.0.2.tar.gz

Распаковываем архив в ранее созданный каталог пользователя tomcat:

tar zxvf apache-tomcat-*.tar.gz -C /opt/tomcat --strip-components 1

И меняем права на файлы для пользователя tomcat:

chown -R tomcat:tomcat /opt/tomcat

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

Ubuntu/Debian

Первым делом выполняем команду update-java-alternatives -l 

Вывод будет примерно таким, значения версий могут отличаться:

java-1.11.0-openjdk-amd64  1111   /usr/lib/jvm/java-1.11.0-openjdk-amd64

Создаём файл /etc/systemd/system/tomcat.service и добавляем в него следующее:

[Unit]
Description=Apache Tomcat Server
After=network.target

[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"
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
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Меняем значение JAVA_HOME на /usr/lib/jvm/java-1.11.0-openjdk-amd64 (может отличаться в зависимости от версии JAVA)

Centos

Создаём файл /etc/systemd/system/tomcat.service и добавляем в него следующее:

[Unit]
Description=Apache Tomcat Server
After=syslog.target network.target


[Service]
Type=forking
User=tomcat
Group=tomcat
Environment=CATALINA_PID=/opt/tomcat/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Далее для применения настроек перезагружаем демона:

systemctl daemon-reload

Запускаем Tomcat:

systemctl start tomcat

Переходим в браузер по ссылке IP_сервера:8080

Настройка доступа к веб-интерфейсу

Tomcat имеет веб-интерфейс управления, но доступ к нему ещё нужно настроить, чем мы сейчас и займёмся.

Создаём пользователя, редактируя файл /opt/tomcat/conf/tomcat-users.xml, добавляем следующие строки в раздел tomcat-users:

   <role rolename="admin-gui"/>
   <role rolename="manager-gui"/>
   <user username="ИМЯ_ПОЛЬЗОВАТЕЛЯ" password="ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ" roles="admin-gui,manager-gui"/>

Далее необходимо разрешить определённому IP заходить в веб-интерфейс управления. Для этого нужно внести изменения в файл /opt/tomcat/webapps/manager/META-INF/context.xml.

Находим строку

allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

Добавляем через прямую черту “|” новый IP, например:

allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|127.0.0.1" />

То же самое делаем и с файлом /opt/tomcat/webapps/host-manager/META-INF/context.xml.

После всех настроек перезапускаем Tomcat.

systemctl restart tomcat

Далее кликаем на один из трёх пунктов управления на сайте, чтобы авторизоваться:

Вас попросят ввести логин и пароль для авторизации, указываем ранее созданные данные в файле /opt/tomcat/conf/tomcat-users.xml

Смена порта

По умолчанию Tomcat работает на 8080 порту, при необходимости его можно сменить в файле /opt/tomcat/conf/server.xml, найдя строку <Connector port="8080" protocol="HTTP/1.1". Меняем 8080 на нужный порт и перезапускаем Tomcat.

Установка сертификата

Размещаем ключ, сертификат и цепочку на сервере.

Или же генерируем файлы сертификата через Openssl по статье.

Далее нужно совместить сертификат и цепочку, командой:

cat файл_сертификата файл_цепочки > cert.pem

Ключ в формат .pem:

mv файл_ключа key.pem

Генерируем файл .p12

openssl pkcs12 -export -out /tmp/cert_and_key.p12 -in cert.pem -inkey key.pem -name tomcat

Будет запрошен пароль, указываем любой, запоминаем.

 

Генерируем сертификат для Tomcat:

keytool -importkeystore -deststorepass 'ПАРОЛЬ_МИН_6_ЗНАКОВ' -destkeypass 'ПАРОЛЬ_МИН_6_ЗНАКОВ' -destkeystore /tmp/domain.jks -srckeystore /tmp/cert_and_key.p12 -srcstoretype PKCS12 -srcstorepass 'ПАРОЛЬ_ИЗ_ПРЕДЫДУЩЕГО_ШАГА' -alias tomcat

Перемещаем готовый файл:

mv /tmp/domain.jks /opt/tomcat/conf/domain.jks

 

В файле /opt/tomcat/conf/server.xml находим блок:

<!--
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
...

</Connector>
-->

Убираем <!-- и --> по краям блока, чтобы раскомментировать его и приводим к виду:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
            maxThreads="150" SSLEnabled="true">
     <SSLHostConfig>
         <Certificate certificateKeystoreFile="conf/domain.jks"
                      certificateKeystorePassword="ПАРОЛЬ_МИН_6_ЗНАКОВ"
                      type="RSA" />
     </SSLHostConfig>
</Connector>

В certificateKeystoreFile указываем файл conf/domain.jks, это ранее созданный сертификат, который мы переместили.

В certificateKeystorePassword указываем пароль, от сертификата

 

Перезапускаем Tomcat:

systemctl restart tomcat