Apache Tomcat — это веб-сервер и контейнер сервлетов, который используется для обслуживания приложений Java.
Tomcat — это открытая реализация технологий Java Servlet и JavaServer Pages, выпущенных Apache Software Foundation. В этом руководстве описывается базовая установка и настройка Tomcat 8 на Raspberry Pi, Orange Pi и Banana Pi под Linux Ubuntu 16.04.1 LTS.
Для создания статьи был выбран Orange Pi PC и операционная система Linux Ubuntu 16.04.1 LTS 3.4.113-sun8i (ARMBIAN 5.25).
Установка Java
Tomcat 8 требует, чтобы Java была установлена на сервере, чтобы можно было выполнить любое Java веб-приложение. Мы можем удовлетворить это требование, установив OpenJDK с помощью apt-get.
Во-первых, обновите свой индекс пакетов apt-get:
sudo apt-get update
Затем установите Java Development Kit с помощью apt-get:
sudo apt-get install default-jdk
Теперь, когда установлена Java, мы можем создать пользователя tomcat, который будет использоваться для запуска службы Tomcat.
Создание Tomcat пользователя
В целях безопасности, Tomcat должен быть запущен как непривилегированный пользователь (т.е. не root). Мы создадим нового пользователя и группу, которые будут запускать службу Tomcat.
Сначала создайте новую группу tomcat:
sudo groupadd tomcat
Затем создайте нового пользователя tomcat. Мы сделаем этого пользователя членом группы tomcat с домашним каталогом /opt/tomcat (где мы будем устанавливать Tomcat) и с shell-ом /bin/false (чтобы никто не смог войти в учетную запись):
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
Теперь, когда наш пользователь tomcat настроен, давайте загрузим и установим Tomcat 8.
Установка Tomcat 8
Лучший способ установить Tomcat 8 — это загрузить последнюю версию, а затем настроить её вручную.
Найдите последнюю версию Tomcat 8 на странице загрузки Tomcat. Для написания статьи я использовал версию 8.5.43, но вы можете использовать более позднюю стабильную версию, если она доступна. В разделе Binary Distributions, затем в списке Core скопируйте ссылку на tar.gz.
Затем перейдите в каталог /tmp на вашем сервере, эта папка предназначена для хранения временных файлов, которые нам не понадобятся после извлечения содержимого Tomcat. Более того, система сама должна очищать их при перезагрузке:
cd /tmp
Используйте curl для загрузки ссылки, которую вы скопировали с веб-сайта Tomcat:
curl -O https://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.43/bin/apache-tomcat-8.5.43.tar.gz
Мы установим Tomcat в каталог /opt/tomcat. Создайте каталог, затем извлеките архив с помощью следующих команд:
sudo mkdir /opt/tomcat sudo tar xzvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1
Далее, мы можем установить соответствующие права доступа пользователей для нашей установки.
Обновление прав
Пользователь tomcat, который мы настроили, должен иметь доступ к установке Tomcat.
Перейдите в каталог, в котором мы распаковали Tomcat:
cd /opt/tomcat
Дайте группе tomcat право собственности на весь каталог:
sudo chgrp -R tomcat /opt/tomcat
Затем дайте группе tomcat права чтения и выполнения на каталог conf и всё его содержимое:
sudo chmod -R g+r conf sudo chmod g+x conf
Сделайте пользователя tomcat владельцем каталогов webapps, work, temp и logs:
sudo chown -R tomcat webapps/ work/ temp/ logs/
Теперь, когда настроены соответствующие права, мы можем создать файл службы systemd для управления процессом Tomcat.
Создание файла службы systemd
Tomcat должен знать, где установлена Java. Этот путь обычно называют JAVA_HOME. Самый простой способ найти этот пить — запустить эту команду:
sudo update-java-alternatives -l
Результат:
java-1.8.0-openjdk-armhf 1074 /usr/lib/jvm/java-1.8.0-openjdk-armhf java-gcj-5 /usr/lib/jvm/java-gcj-5
Задаём переменные среды JAVA_HOME, JDK_HOME, JRE_HOME и добавляем в PATH:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-armhf export JDK_HOME=/usr/lib/jvm/java-1.8.0-openjdk-armhf export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-armhf/jre export PATH="$PATH:$JAVA_HOME/bin:$JRE_HOME/bin"
Если переменная JAVA_HOME у вас установлена, тогда не нужно выполнять выше упомянутые команды.
Теперь мы можем создать файл службы systemd. Откройте файл tomcat.service в каталоге /etc/systemd/system, набрав:
sudo nano /etc/systemd/system/tomcat.service
Вставьте следующее содержимое в файл службы. Измените значение JAVA_HOME, если необходимо, чтобы соответствовать значению, которое вы нашли в вашей системе. Вы также можете изменить параметры распределения памяти, указанные в CATALINA_OPTS:
[Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=forking Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid Environment=CATALINA_HOME=/opt/tomcat Environment=CATALINA_BASE=/opt/tomcat Environment='CATALINA_OPTS=-Xms256M -Xmx768M -server -XX:+UseParallelGC' Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom' ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh User=tomcat Group=tomcat UMask=0007 RestartSec=10 Restart=always [Install] WantedBy=multi-user.target
Сохраните и закройте файл:
CTRL-X, Y, ENTER
Затем перезагрузите systemd daemon, чтобы он знал о нашем файле:
sudo systemctl daemon-reload
Запустите службу Tomcat, набрав:
sudo systemctl start tomcat
Проверьте, чтобы Tomcat запустился без ошибок, набрав:
sudo systemctl status tomcat
Настройка брандмауэра и тестирование сервера Tomcat
Теперь, когда служба Tomcat запущена, мы можем проверить, доступна ли страница по умолчанию.
Прежде чем мы это сделаем, нам необходимо настроить брандмауэр, чтобы наши запросы могли получить доступ к службе.
Tomcat использует порт 8080 для приема обычных запросов. Разрешить трафик на этот порт, набрав:
sudo ufw allow 8080
Если у вас не установлен ufw или отключён, тогда эту команду не нужно выполнить.
Теперь вы можете открыть страницу по умолчанию, перейдя на ваш домен или IP-адрес, а затем: 8080 в веб-браузере:
http://<домен сервера или IP-адрес>:8080
В моём случае это:
http://192.168.0.100:8080
Однако, если вы щелкнете ссылки для приложения-менеджера, например, вам будет отказано в доступе. Мы можем настроить этот доступ далее.
Если вы смогли успешно получить доступ к Tomcat, теперь самое подходящее время для включения служебного файла, чтобы Tomcat автоматически запускался при загрузке:
sudo systemctl enable tomcat
Настройка интерфейса Tomcat Web Management
Чтобы использовать веб-приложение менеджера, которое поставляется с Tomcat, мы должны добавить логин на сервер Tomcat. Мы сделаем это, отредактировав файл tomcat-users.xml:
sudo nano /opt/tomcat/conf/tomcat-users.xml
Вы хотите добавить пользователя, который может получить доступ к manager-gui и admin-gui (веб-приложениям, поставляемым с Tomcat). Вы можете сделать это, указав пользователя, аналогичный приведенному ниже примеру, между тегами tomcat-users. Обязательно измените имя пользователя и пароль на что-то безопасное:
<?xml version="1.0" encoding="UTF-8"?> <tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" version="1.0"> <role rolename="admin-gui"/> <role rolename="manager-gui"/> <user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/> </tomcat-users>
Сохраните и закройте файл.
По умолчанию более новые версии Tomcat ограничивают доступ к приложениям Manager и Host Manager для подключений, поступающих с самого сервера. Поскольку мы устанавливаем на удаленную машину, вы, вероятно, захотите удалить или изменить это ограничение. Чтобы изменить ограничения IP-адресов на них, откройте соответствующие файлы context.xml.
Для приложения Manager введите:
sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml
Для приложения Manager app введите:
sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
Внутри закомментируйте ограничение IP-адреса, чтобы разрешать подключения из любого места. Кроме того, если вы хотите разрешить доступ только к соединениям, исходящим из вашего собственного IP-адреса, вы можете добавить свой общедоступный IP-адрес в список:
Файл 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" /> </Context>
Файл context.xml после удаления <Valve />:
<?xml version="1.0" encoding="UTF-8"?> <Context antiResourceLocking="false" privileged="true" > </Context>
Сохраните и закройте файлы.
Чтобы внести наши изменения в силу, перезапустите службу Tomcat:
sudo systemctl restart tomcat
Доступ к веб-интерфейсу
Теперь, когда мы создали пользователя, мы снова можем обратиться к веб-интерфейсу управления в веб-браузере. Еще раз, вы можете перейти к интерфейсу, указав доменное имя вашего сервера или IP-адре и порт 8080 в вашем браузере:
http://<домен сервера или IP-адрес>:8080
Заключение
Установка Tomcat 8 завершена! Теперь вы можете развернуть свои собственные веб-приложения Java!
Спасибо огромное за толковую иструкцию. Все взлетело с первого раза!
Главные новости мира https://ua-vestnik.com и страны: политика, экономика, спорт, культура, технологии. Оперативная информация, аналитика и эксклюзивные материалы для тех, кто следит за событиями в реальном времени.