Настройка файлов конфигурации tomcat
Если формат отображения даты требуется русский (то есть в виде 10.02.2008), то в настройках запуска демона томката, рекомендуется прописать свойства JAVA_OPTS="$JAVA_OPTS $LOGGING_MANAGER -Duser.language=ru -Duser.region=RU"
Для корректного отображения кириллицы в консоли томката нужно сделать следующее: В файле C:\Program Files\apache-tomcat-7.0.8\bin\catalina.bat в конце 4 строчки, где происходит запуск, нужно перед %MAINCLASS% дописать -Dfile.encoding=cp866
Если это не помогло, то еще нужно в свойствах окна консоли поставить шрифт lucida console
Дано: Установлен томкат, слушает порт 8080.
Найти: способ установить на этот-же компьютер apche, например для размещения wiki-ресурса.
в итоге элемент connector будет иметь вид
Для более информативной настройки шаблона файла лога предлагается в настройках Tomcat в файле conf/server.xml поменять:
Данные настройки выводят в лог строки следующего шаблона:
Тег valve с типом className="org.apache.catalina.valves.AccessLogValve" поддерживает следующие аттрибуты:
- className Java class name of the implementation to use. This MUST be set to org.apache.catalina.valves.AccessLogValve to use the default access log valve. To use a more optimized access log valve designed for production use, you MUST set this attribute to org.apache.catalina.valves.FastCommonAccessLogValve. In this case, only the common and combined patterns are supported.
- directory Absolute or relative pathname of a directory in which log files created by this valve will be placed. If a relative path is specified, it is interpreted as relative to $CATALINA_HOME. If no directory attribute is specified, the default value is "logs" (relative to $CATALINA_HOME).
- pattern A formatting layout identifying the various information fields from the request and response to be logged, or the word common or combined to select a standard format. See below for more information on configuring this attribute. Note that the optimized access does only support common and combined as the value for this attribute.
- prefix The prefix added to the start of each log file's name. If not specified, the default value is "access_log.". To specify no prefix, use a zero-length string.
- resolveHosts Set to true to convert the IP address of the remote host into the corresponding host name via a DNS lookup. Set to false to skip this lookup, and report the remote IP address instead.
- suffix The suffix added to the end of each log file's name. If not specified, the default value is "". To specify no suffix, use a zero-length string.
- rotatable Default true. Flag to determine if log rotation should occur. If set to false, then this file is never rotated and fileDateFormat is ignored. Use with caution!
- condition Turns on conditional logging. If set, requests will be logged only if ServletRequest.getAttribute() is null. For example, if this value is set to junk, then a particular request will only be logged if ServletRequest.getAttribute("junk") == null. The use of Filters is an easy way to set/unset the attribute in the ServletRequest on many different requests.
- fileDateFormat Allows a customized date format in the access log file name. The date format also decides how often the file is rotated. If you wish to rotate every hour, then set this value to: yyyy-MM-dd.HH
Шаблон (pattetn) вывода в лог задается с помощь следующих кодов шаблона:
Алгоритм настройки следующий:
- Получение сертификата и приведение его в нужный вид;
- Импорт сертификата в java-хранилище ключей (JKS);
- Настройка коннектора в server.xml для открытия порта защищенного соединения.
- Настройка автоматической переадресации в web.xml
Необходимое ПО для работы с сертификатами:
- openSSL
- keytool (является компонентом jdk)
Tomcat — что это?
Создание пользователя
Создаем пользователя командой:
useradd tomcat -U -s /bin/false -d /opt/tomcat -m
* в итоге будет создан пользователь tomcat со следующими опциями:
- -U — также будет создана группа с таким же именем, что и пользователь.
- -s /bin/false — запрещает пользователю интерактивный вход в систему.
- -d /opt/tomcat — указывает путь до домашней директории пользователя.
- -m — сразу создает домашнюю директорию пользователю.
Можно приступать к установке веб-сервера Apache Tomcat.
Компоненты Tomcat
У Tomcat есть компоненты, выполняющие определенные функции, и о них стоит знать. Давай разберемся подробнее.
Подготовка системы
Обновляем список пакетов в репозиториях:
Задаем имя серверу:
Настраиваем часовой пояс, например:
timedatectl set-timezone Europe/Moscow
* где Europe/Moscow — московское время. Список всех возможных зон смотрим командой timedatectl list-timezones.
Устанавливаем сервис для автоматической синхронизации времени, а также разрешаем его автозапуск:
apt-get install chrony
systemctl enable chrony
Если мы используем брандмауэр, необходимо открыть порт 8080:
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
* 8080 — порт по умолчанию, на котором работает Tomcat. Если мы заходим поменять данный порт, то нужно будет открыть именно его.
Сохраняем правила — для этого устанавливаем утилиту iptables-persistent:
apt-get install iptables-persistent
Если в процессе установки мы отказались сохранять правила, выполняем команду:
Можно приступать к установке Java.
Catalina
Благодаря этому компоненту у разработчиков появляется возможность разворачивать свои программы в контейнере. Catalina реализует спецификацию Servlet API — основную веб-технологию в web-программировании на Java. Фактически Catalina — это контейнер сервлетов внутри Tomcat (подробнее рассмотрим это понятие ниже).
Как создать веб-приложение
Установка
В этой главе описана информация о базовой установке Apache Tomcat сервер 7 при помощи менеджера пакетов yum и из файла дистрибутива (с сайта проекта) на сервер CentOS 7. Apache Tomcat сервер – это серверное ПО для исполнения web-приложений, написанных на Java. Поэтому, предполагается, что у вас уже установлена Java Runtime Environment (JRE).
Установка с помощью менеджера пакетов
Проверить, установлен ли уже Apache Tomcat через менеджер пакетов, можно командой:
Установить Tomcat, используя менеджер пакетов, можно следующей командой:
После выполнения этой команды будет установлен сервер Tomcat 7 и все его зависимости. Кроме того, команда создаст пользователя tomcat.
Данное руководство подразумевает установку нескольких дополнительных пакетов, которые помогут управлять web-приложениями. Чтобы установить стандартную root-страницу (tomcat-webapps), менеджер веб-приложений и виртуальных хостов Tomcat (tomcat-admin-webapps), выполните команду:
После этого в каталоге tomcat/webapps появятся веб-приложения ROOT, examples, sample, manager и host-manager.
Установка из файла дистрибутива
В некоторых случаях установка ПО с помощью пакетного менеджера невозможна. Тогда используется способ установки из файла дистрибутива. Общий подход в работе Apache Tomcat остается таким же, но есть ряд отличий в установке и запуске.
Чтобы установить Apache Tomcat сервер, необходимо c сайта проекта (или дистрибутива ПО) взять файл apache-tomcat-7.0.67.zip и распаковать его в папку /home/user/tomcat, а потом перенести в /usr/share/tomcat7
Компиляция из исходного кода
Установка JDBC-драйвера
Неофициальным стандартом, которому следуют программы на языке Java, осуществляя доступ к реляционным базам данных, является JDBC. JDBC – это стандартный API-¬интерфейс, посредством которого Java-программы могут получать доступ к внешним менеджерам ресурсов, главным образом к реляционным базам данных, независящим от менеджера ресурсов способом. То есть Java-приложение, написанное с применением стандартных классов и интерфейсов JDBC, может переноситься на базы данных других производителей реляционных СУБД, если они поддерживают SQL, удовлетворяющий стандарту ANSI.
Далее, нужно добавить следующие строки внутри тега «Context» в файл /usr/shatre/tomcat/conf/context.xml:
Теперь JNDI-ресурс настроен.
После того, как вы разместили jar-файл драйвера в нужном каталоге, и внесли необходимые изменения в файл «context.xml» необходимо перезапустить Apache Tomcat
Coyote
Установка сервлета
Tomcat принимает для обработки веб-приложения на Java, которые имеют расширение .war. Это как jar, только web. Файлы такого типа объединяют в себе JSP-файлы, сервлеты, class-файлы, статические ресурсы и прочее. При установке такого файла в Tomcat происходит его распаковка, а затем запуск, поэтому существует строгое требование к структуре файлов в проекте. Если проект был создан в IDEA, вся структура создана автоматически. Файл war можно создать стандартными средствами IDEA. Для этого необходимо зайти в ProjectStructure -> Artifacts -> Нажать “+” -> WebApplication: Archive. В открывшемся поле задать имя для итогового war-файла, например deployed_war. Ниже необходимо нажать на кнопку Create Manifest… Далее необходимо указать путь к папке web проекта. В ней будет создана папка META-INF, в которую будет помещен файл MANIFEST.MF. Далее следует нажать Apply и Ok. Чтобы собрать проект в war-файл, следует во вкладке Build выбрать опцию Build Artifact: В появившемся поле нужно нажать на deployed_war. Затем начнется сборка проекта и Intellij IDEA создаст папку out, в которой появится папка artifacts с именем нашего артефакта. В этой папке будет лежать файл deployed_war.war: Теперь можно деплоить этот файл в Tomcat. Деплой приложения проще всего выполнить из веб-интерфейса Tomcat. Просто нажмите кнопку выбора файла на вкладке Deploy, перейдите к местоположению файла WAR и выберите его, затем нажмите кнопку развертывания. В обоих случаях, если все пойдет хорошо, консоль Tomcat сообщит нам, что развертывание прошло успешно примерно таким выводом в консоль: INFO: Deployment of web application archive \path\to\deployed_war has finished in 4,833 ms
Польза Tomcat для разработки
Самое главное, Tomcat может выполнять роль полноценного web-сервера. Благодаря этому развертывание приложений происходит гораздо быстрее, чем было раньше.Также Tomcat может выступать в роли классического контейнера сервлетов, который можно встроить в более крупный веб-сервер.
Tomcat способствует обмену данными между клиентом и сервлетом, обеспечивает программный контекст для веб-приложений, берет на себя функции идентификации и авторизации клиентов, создание сессий для каждого из них.
Предоставляет очень удобное управление JSP-страницами. Фактически веб-сервер может отдавать только html. Jasper, компонент Tomcat, компилирует код, содержащийся в шаблонных тегах JSP-страниц в корректный HTML-файл, который получает клиент. Вся логика шаблонизации находится внутри Tomcat, позволяя добавлять даже сложные конструкторы в классическую форму HTML.
Открываем «e:\tomcat\apache-tomcat-8.0.15\bin\». Видим много батников и sh сценариев.
Открываем «catalina.bat». Там видим много закомментированных строк с переменными окружения, которые должны быть объявлены, или которые можно объявлять, а можно и нет.
Те переменные, которые должны быть объявлены — это
- set CATALINA_HOME="e:\tomcat\apache-tomcat-8.0.15"
- set JAVA_HOME="e:\ProgramFiles\Java\jre1.8.0_25"
причём желательно это сделать в отдельном файле с именем setenv.bat, для этого просто в текстовом редакторе вбиваем эти две строки и сохраняем файл с таким именем в «e:\tomcat\apache-tomcat-8.0.15\bin\»
Примечание: если папка с установленным jre содержит пробелы, то имя должно состоять из максимум шести первых букв реального названия папки, и если такое сочетание по алфавиту в диске первое, то ~1, если второе, то ~2, и т. д.
Например, название папки, внутри которой находится jre, “C:\Program Files\JRE”, а кроме того есть папка «C:\places\», тогда вторая строчка в setenv.bat будет
- set JAVA_HOME="e:\Progra~1\Java\jre1.8.0_25", или
- set JAVA_HOME="e:\P~2\Java\jre1.8.0_25"
Естественно, это не очень хорошо, особенно когда у вас две папки “Program Files” и «Program Files (x86)». В таком случае, чтобы проименовать правильно папку с JRE, придётся поэкспериментировать ~1 или ~2.
Если глобальные переменные сконфигурированы верно, и запустилось окно java – консоли, но какие-то настройки сделаны неверно, то ошибки можно посмотреть в папке «e:\tomcat\apache-tomcat-8.0.15\logs\».
Если пункт 4 выполнен полностью успешно, то в окне браузера можно набрать 127.0.0.1:8080 и в окне будет окно tomcat сервера.
Но если мы захотим войти в настройки Host Manager, и т. д., то нас попросят ввыести логин и пароль. Взять их негде, но в папке conf есть файл tomcat-users.xml, который, если открыть, то сначала кажется правильным, но роли и пользователи там взяты в комментарий . Да и роли, и пользователи там явно неверные. Итак, что же делать.
Для ответа на вопрос, какие роли должны быть, и каких пользоватей назначать, чтобы войти в админку, на страничке 127.0.0.1:8080. Например, про роли manager можно узнать на страничке ttp://127.0.0.1:8080/docs/manager-howto.html, и вместо одного пользователя admin, как было раньше, теперь есть два пользователя: admin-gui и admin-script.
Итак, открываем файл conf\tomcat-user.xml и добавляем там после закомментированного блока с логинами и паролями
Таким образом, мы получим пользователя superadmin с паролем pass.
Tеперь при помощи скриптов shutdown.bat и startup.bat перезапускаем сервер, и можем войти в админку.
можно ещё создать в админке ссылку на хост (Это то же самое, что мы сейчас сделали).
При создании новых записей в hosts для win8, сначала копируем файл в другую папку, там правим, и затем пишем обратно. После этого рестарт компьютера или сервера не нужен.
Установка Tomcat
Чтобы использовать Tomcat в Java, его необходимо установить в систему. О том, как установить Tomcat можно прочитать в этой статье, где также рассматриваются и другие сервера приложений. Итак, имея работающий Tomcat, встроенный в IDEA, можно попробовать приготовить свой первый сервлет.
Настройка
Каталоги и файлы
После установки, в системе будут созданы следующие файлы и каталоги:
- /usr/share/tomcat/bin: содержит управляющие скрипты;
- /etc/tomcat: конфигурационные файлы (server.xml, web.xml, context.xml, tomcat-users.xml);
- /usr/share/java/tomcat: jar-файлы, используемые всеми расширениями Tomcat и веб-приложениями;
- /var/log/tomcat: log-файлы;
- /srv/tomcat/webapps: каталог, содержащий веб-приложения (сервлеты и JSP);
- /var/cache/tomcat/work: рабочий каталог Tomcat, который используется, в первую очередь, при преобразовании JSP-страниц в сервлеты;
- /var/cache/tomcat/temp: временные файлы.
В каталоге /usr/share/tomcat будут, также, размещены симлинки на указанные каталоги. Путь к основному каталогу Tomcat можно записать в переменную окружения $CATALINA_HOME (export CATALINA_HOME='/usr/share/tomcat/').
Для настройки сервера Tomcat используются следующие конфигурационные XML-файлы, размещенные в каталоге /usr/share/tomcat/conf/:
- server.xml: Общие настройки сервера (порты, виртуальные хосты и проч.).
- web.xml: Параметры, общие для ВСЕХ веб-приложений на текущем сервере. Настройки отдельных веб-приложений задаются в их собственных файлах /WEB-INF/web.xml (здесь можно провести аналогию с использованием файла .htaccess в Apache).
- context.xml: Общие настройки управления контентом.
- tomcat-users.xml: Список пользователей и групп (ролей).
Внимание: Прежде чем вносить какие-либо изменения в эти файлы, стоит сделать их резервные копии. Также следует обращать внимание на комментарии, которыми снабжены эти файлы
Настройка портов подключений и межсетевого экрана
Настройка портов подключений
Для того, чтобы сменить порт Apache Tomcat, отредактируйте файл конфигурации server.xml в каталоге /etc/tomcat/server.xml. Найдите строку "
После этого перезапустите Tomcat для того, чтобы изменение настроек вступило в силу.
Настройка межсетевого экрана (firewall)
После установки Tomcat необходимо убедиться, что в файле конфигурации (/etc/firewalld/zones/public.xml) межсетевого экрана открыты порты, по которым будут обращения к серверу web-приложений из браузера. Чтобы открыть порт 8080 (который используется Tomcat по-умолчанию), выполните команду:
И перезагрузите сетевой экран
В результате вышеописанных действий, файл конфигурации межсетевого экрана будет выглядеть следующим образом (добавилась предпоследняя строка):
Настройка ролей и прав доступа пользователей
Для управления пользователями и ролями Tomcat используется файл tomcat-users.xml, расположенный в каталоге /usr/share/tomcat/conf. Например, чтобы пользоваться ранее установленным менеджером веб-приложений, необходимо добавить соответствующего пользователя на сервер Tomcat. Для этого нужно отредактировать вышеупомянутый файл, добавив в него данные о пользователе, который получит доступ к manager-gui и admin-gui (ранее установленному интерфейсу). Для этого используйте следующий формат, указав имя и пароль пользователя:
Файл содержит подсказки по его настройке. Чтобы создать, например, пользователя manager, который сможет управлять веб-приложениями через графическую оболочку (предопределенная роль manager-gui), нужно добавить в этот файл запись вида:
Сохраните и закройте файл tomcat-users.xml Обратите внимание, что в Tomcat 7 нет единой роли «manager», а существуют отдельные роли для администрирования:
- manager-gui - позволяет администрировать через веб-интерфейс;
- manager-script - позволяет администрировать через скрипты;
- manager-jmx - позволяет администрировать через JMX прокси;
- manager-status - дает доступ только к странице статуса сервера.
Например, для развертывания web-приложений через Maven необходимо присвоить пользователю роль «manager-script». В файле tomcat-users.xml описание этой роли будет выглядеть следующим образом:
Настройка переменных среды исполнения
Переменные среды окружения не используются Java-приложением Tomcat – вся настройка переменных происходит в стартовых скриптах. Но в некоторых случаях все же может понадобиться настройка некоторых переменных. Обратите внимание на то, что если у вас установлено несколько JVM, по умолчанию Tomcat попробует использовать OpenJDK, затем пробует JVM от Oracle, а затем иные JVM. Если у вас будут проблемы, связанные с переменными среды исполнения, выполните следующие шаги:
- Установите переменную среды CATALINA_HOME и CATALINA_BASE
- Установить переменную среды JRE_HOME или JAVA_HOME. Переменная среды используется для указания расположения JRE или JDK. Если определены обе переменные, то используется JRE_HOME.
- Остальные переменные среды опциональны: CATALINA_OPTS, JAVA_OPTS, CATALINA_PID, JSVC
- Использование скрипта setenv для установки переменных среды (рекомендуется)
Настройка сервера-разработки
Если вы используете Tomcat на сервере разработки и/или тестирования, вам могут быть полезны следующие опции:
Автоматическая перезагрузка страниц
Имеется возможность заставить Tomcat выполнять автоматическую перезагрузку после изменения кода. Нужно добавить атрибут reloadable со значением "true" в элемент файла conf/context.xml. Это весьма полезно в процессе разработки и отладки сервлетов, но не рекомендуется в процессе постоянной работы web-приложения.
Включение листинга каталогов
Для установки отображения списка файлов в каталогах (листинга), нужно поменять значение атрибута listings с ложного (false) на истинное (true) в блоке настроек сервлета по умолчанию ("default"-servlet) в файле conf/web.xml. Это бывает полезным при разработке и отладке веб-приложений, но не рекомендуется использовать на production-сервере по соображениям безопасности.
Поменять порт
По умолчанию, Tomcat запускается на порту 8080. Чтобы сменить номер, открываем файл:
В данном документе представлена информация о базовой установке Apache Tomcat 7 на CentOS 7, первоначальной настройке и запуске приложений.
Генерация сертификата с помощью letsencrypt
На данный момент мы точно уверены, что при генерации сертификата для Tomcat-а на Windows сервере подходит версия letsencrypt-win-simple.V1.9.3, в более поздних версиях были ошибки.
Для генерации сертификата нужно обязательно настроить Tomcat на порт 80. Это необходимо для того, чтобы центр авторизации мог верифицировать принадлежность нам домена, на который выпускается сертификат. Обращаем ваше внимание, что letsencryp выпускает сертификаты только типа DV (Domain Verified), что означает необходимость подтверждения принадлежности домена лицу, выпускающему сертификат.
Для создания сертификата запустите командную строку от имени администратора и выполните команду
Выберите пункт "Create certificate manually" после чего следуйте инструкциям в окне командной строки. Когда программа спросит, какой метод верификации выбрать, укажите Self-hosted verification.
После завершения работы программы в C:\Users\Username\AppData\Roaming\letsencrypt-win-simple будут сгенерированы ваши сертификаты:
Функции контейнера сервлетов
- Обмен данными между сервлетом и клиентами;
- Организация клиентских сессий;
- Создание программной среды для функционирования сервлета;
- Идентификация и авторизация клиентов;
- В большинстве случаев — управление метаданными (заголовки, методы и прочее).
Самоподписанный сертификат
1. Для генерации самоподписанного сертификата необходимо выполнить следующую команду в консоли с помощью keytool:
- tomcat - псевдоним
- mykeystore - имя java-хранилища ключей
Затем в консоли необходимо ввести следующие данные (запросы идут по очереди):
- Enter keystore password: mypassword
- What is your first and last name? [Unknown]: first last
- What is the name of your organizational unit? [Unknown]: unit
- What is the name of your organization? [Unknown]: organization
- What is the name of your City or Locality? [Unknown]: city
- What is the name of your State or Province? [Unknown]: state
- What is the two-letter country code for this unit? [Unknown]: ru
- Is CN=firstname lastname, OU=organizationalunit, O=organization, L=city, ST=state, C=ru correct? [no]: yes
- Enter key password for (RETURN if same as keystore password):
2. Полученный файл хранилища ключей с именем mykeystore необходимо поместить в папку ../Apache Software Foundation/Tomcat (корень томката)
3. Добавить следующий элемент настройки коннектора порта 8443 в файл ../Tomcat/conf/server.xml
Установка JAVA
Мы установим пакет openjdk. Для этого вводим команду:
apt-get install default-jdk
* будет установлена последняя версия, максимально совместимая с используемой версией операционной системы Ubuntu.
Если в системе окажется несколько версий java, выберем последнюю. Для этого вводим команду:
update-alternatives --config java
. и выбираем в списке соответствующий вариант.
Проверяем используемую версию java:
Мы должны увидеть что-то на подобие:
openjdk version "14.0.2" 2020-07-14
OpenJDK Runtime Environment (build 14.0.2+12-Ubuntu-120.04)
OpenJDK 64-Bit Server VM (build 14.0.2+12-Ubuntu-120.04, mixed mode, sharing)
Как встроить приложение в работающий сервер
Несмотря на то, что встроенный Tomcat в IDEA — удобная фича, веб-приложение может быть перенесено на другой сервер и в другой контейнер. Рассмотрим вариант, когда необходимо встроить свое приложение в уже работающий сервер. Во-первых, необходимо дополнительно разобрать цель и функции контейнера сервлетов. Программа, которая приведена в примере выше — это веб-приложение. Класс TimeWorker — сервлет. Компоненты выполняют исключительно обработку запросов. Данные компоненты должны быть встроены в специальный контейнер сервлетов. Цель контейнера сервлетов — поддержка сервлетов и обеспечение их жизненного цикла. Простейший пример работы Tomcat — сканирование определенной папки с целью определить, появился ли в ней новый сервлет. Если да — инициализировать его и подготовить к приему запросов от клиентов. Если сервлет был обновлен, провести повторную инициализацию для обновления компонентов. При удалении сервлета — остановить обработку запросов, удалить сервлет из Tomcat.
Host-Manager
В данном разделе можно управлять виртуальными серверами.
. и добавляем IP-адрес компьютера, с которого будем подключаться, например:
* в данном примере мы добавили адрес 192.168.1.15, которому разрешаем подключаться к управлению виртуальными серверами.
Пробуем зайти на стартовую страницу и перейти в раздел Host Manager:
Мы должны увидеть раздел «Управление виртуальными серверами Tomcat».
Общие сведения
Архитектура
Запуск
Запуск и остановка Tomcat
Если вы установили Tomcat с помощью менеджера пакетов, то для запуска сервиса Tomcat введите следующую команду:
Для того, чтобы перезапустить сервис (например, после внесения изменений в настройки), используется следующая команда:
Чтобы сервис Tomcat автоматически запускался на этапе загрузки сервера:
Рисунок N. Приветственная страница Tomcat.
Запуск при установке без использования менеджера пакетов
Запуск Tomcat может быть осуществлен с использованием следующих команд:
Скрипт catalina.sh используется для ручного запуска и остановки сервера Tomcat. Для автоматического запуска можно использовать скрипт:
Завершение работы Apache Tomcat:
Файлы вашего приложения нужно расположить в каталоге /usr/share/tomcat7/webapps, более подробная информация по развертыванию приложений в главе «Запуск приложений».
Менеджер Web-приложений
Рисунок N. Окно авторизации.
Для входа в менеджер web-приложений необходимо воспользоваться теми именем пользователя и паролем, которые были заданы при настройке пользователей и ролей. Web Application Manager используется для управления приложениями Java; он позволяет запускать, останавливать, перезапускать и удалять приложения. Также Web Application Manager позволяет выполнять диагностику приложений (например, обнаруживать утечки памяти). Кроме того, в самом низу этой страницы находится информация о сервере.
Рисунок N Основное окно менеджера web-приложений.
В разделе «Manager» есть ссылка «Server Status», для получения детального описания состояния сервера.
В разделе Applications перечислены веб-приложения, установленные на данном сервере, и есть кнопки для управления ими:
- Start — запустить приложение;
- Stop — остановить приложение, при этом сам сервер и остальные приложения продолжат работу;
- Reload — перезапустить приложение;
- Undeploy — удалить приложение;
- Expire sessions with idle >= … minutes — считать веб-сессии пользователей истекшими по прошествии стольки-то минут без активности.
Раздел Deploy предназначен для инсталляции приложения из war-файла.
Diagnostics позволяет найти утечки памяти и принудительно запустить сборку мусора в JVM.
Web Application Manager сам является web-приложением, которое предварительно установлено в Tomcat. Следовательно, для того, чтобы Tomcat мог его использовать, это приложение должно быть запущено и присутствовать в списке приложений. Кроме менеджера web-приложенй (manager), в числе предустановленных часто бывает приложение для управления хостами (host-manager).
Установка и удаление web-приложений
Установка web-приложений
Существует два способа развертывания приложений.
Способ 1. Без использования менеджера приложений (Tomcat Web Application Manager):
- Скопировать war-файл в каталог \webapps
- Если Tomcat был запущен, то он сам развернет приложение из war-файла через несколько секунд (появится одноименный каталог). Либо самостоятельно перезапустите Tomcat, и он развернёт war.
- Проверьте работоспособность приложения, пройдя по соостветствующей ссылке.
Способ 2. С использованием менеджера приложений (Tomcat Web Application Manager):
После этого Tomcat самостоятельно скопирует war-файл к себе в каталог \webapps и развернет его. Web-приложение появится в списке Applications и вы сможете перейти к нему, кликнув по ссылке с соответствующим названием.
Удаление web-приложений Существует два способа развертывания приложений.
Способ 1. Без использования менеджера приложений (Tomcat Web Application Manager):
- Выключите Apache Tomcat сервер командой «systemctl stop tomcat»
- В каталоге \webapps удалите war-файл и одноименный каталог.
- В каталоге \conf\Catalina\localhost удалите одноименный xml.
- В каталоге \work\Catalina\localhost удалите одноименный каталог.
Последний шаг необязателен: удаляются временные файлы которые создал Tomcat.
Способ 2. С использованием менеджера приложений (Tomcat Web Application Manager):
Структура каталогов web-приложений
Все web-приложения размещаются в каталоге webapps (/usr/share/tomcat/webapps). Каждое приложение размещается в собственном, одноименном, каталоге с определенной вложенной структурой. Например, для приложения websample структура каталогов должны быть следующей: webapps/websample/WEB-INF/classes. Соответственно, создать эту структуру можно так:
Tomcat изучается на 9 уровне квеста Java Collections в курсе JavaRush. За 2 лекции Билаабо расскажет, как скачать и настроить Tomcat, а также собрать первое веб-приложение.
Подготовка к установке
Для работы веб-сервера нам необходимы Java и пользователь, под которым будет работать Tomcat.
Server Status и Manager App
Разделы позволяют получить доступ к статистике и управлению веб-приложениями. Они настраиваются вместе.
. и добавляем IP-адрес компьютера, с которого будем подключаться, например:
* в данном примере мы добавили адрес 192.168.1.15, которому разрешаем подключаться к статистике сервера и управлению веб-приложениями.
Пробуем зайти на стартовую страницу и перейти в раздел Server Status:
Браузер запросит логин и пароль — вводим созданные ранее данные (admin и password). Мы должны увидеть статистику.
Теперь переходим в раздел Manager App:
Мы должны увидеть раздел «Управление веб-приложениями Tomcat».
Доступ к Managing Tomcat
Мы можем использовать веб-интерфейс для управления Tomcat. Для этого используются кнопки на стартовой странице:
- Server Status
- Manager App
- Host Manager
По умолчанию, доступ закрыт в данные разделы. Пошагово, настроим доступ в каждый из них.
Сертификат, выпущенный официальным центром
Томкат может взаимодействовать только с хранилищами ключей в форматах JKS, PKCS11 и PKCS12. JKS - Java Key Store, формат, в котором создаются сертификаты с помощью утилиты keytool. Эта утилита включена в JDK. PKCS12 - стандартный интернетовский формат. Файлами этого формата можно управлять с помощью OpenSSl и Microsoft's Key-Manager (и др).
Для установки сертификата PEM-типа с расширением .crt или .cer необходим соответствующий файл private key (обычно с расширением .key), который был создан автоматически при генерации CSR запроса.
1. Убедиться, что сертификат и private key имеют одинаковую кодировку Base-64. Для этого нужно открыть их в текстовом редакторе, начало и конец файла должно выглядеть следующим образом:
Если сертификат имеет другую кодировку, необходимо перевести его в Base-64. Для этого открываем его двойным кликом, на вкладке нажимаем . В появившемся мастере экспорта сертификатов выбрать опцию и выбрать место и имя сертификата для сохранения.
2. Преобразовать сертификат и его закрытый ключ в формат pkcs12 с помощью OpenSSL. Для этого в консоли необходимо выполнить следующую команду:
- cert.crt - сертификат в кодировке base-64, .crt или .cer
- private.key - файл закрытого ключа к нашему сертификату
- keystore - имя java-хранилища ключей
- keystore.p12 - новый сертификат с закрытым ключом внутри.
Для повышения уровня надежности java-хранилища можно указать сертификат центра, выдавшего ваш сертификат. Для этого при выполнении команды выше следует указать дополнительные параметры:
Либо, если идет генерация через letsencrypt, то chain файл уже сгенерирован:
После выполнения команды необходимо ввести пароль к данному файлу.
Внимание. Если в процессе выполнения команды OpenSSL в консоли появилась следующая ошибка:
Необходимо прописать путь к файлу openssl.conf вручную с помощью следующей команды:
3. Добавить следующий элемент настройки коннектора порта 8443 в файл ../Tomcat/conf/server.xml. Для возможности переадресации необходимо старый Connector оставить.
- keystore.jks - созданный .jsk файл в папке с томкатом
- mypassword - пароль для keystore.jsk
- tomcat - алиас
При этом возможно введение переадресации как для всех проектов сразу (если добавить запись в web.xml, расположенный в корне томката ../Tomcat/conf/web.xml), так и отдельно для каждого приложения (если добавить запись в соответствующий проекту web.xml, расположенный в конкретном вебаппс ../Tomcat/webapps//WEB-INF/web.xml).
Для того, чтобы изменения вступили в силу, необходимо перезапустить Tomcat.
Tomcat на Ubuntu не устанавливается из репозитория (в отличие от некоторых других дистрибутивов Linux, например, CentOS). Поэтому в данной инструкции мы выполним ручную установку — развертывание дополнительных компонентов (Java), загрузку и распаковку пакета веб-сервера Tomcat, а также настройку его автоматического запуска в случае сбоя или после перезагрузки системы. На момент обновления инструкции использовался Tomcat версии 10 и Ubuntu 20.04.
Настройка автозапуска
Для начала, остановим работу Tomcat:
Поменяем владельца для всех файлов в каталоге /opt/tomcat:
chown -R tomcat:tomcat /opt/tomcat
Создадим конфигурационный файл для нового юнита:
[Unit]
Description=Apache Tomcat Server
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/default-java"
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
* где обращаем внимание на:
- User/Group — пользователь и группа пользователя, от чьего имени будет работать сервис.
- Environment — переменные окружения. В нашем примере задается несколько для нормальной работы Java и Tomcat.
- ExecStart/ExecStop — пути к скриптам, которые запускают или останавливают работу службы веб-сервера.
- Restart/RestartSec — задают поведение сервиса при необходимости выполнить перезапуск. В нашем примере выполнять при сбое с интервалом в 10 секунд.
Из данных опций, возможно вам захочется поменять CATALINA_OPTS, например, задать другие значения для выделения памяти или указать определенный порт. Остальные опции можно оставить.
Перечитываем новый конфигурационный файл в systemd:
Стартуем наш сервис:
systemctl start tomcat
Проверяем, что он запустился и работает:
systemctl status tomcat
Мы должны увидеть что-то на подобие:
• tomcat.service - Apache Tomcat Server
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2021-02-09 10:30:25 UTC; 22h ago
Main PID: 14645 (java)
При необходимости перезапуска сервиса, можно будет использовать команду:
systemctl restart tomcat
Теперь открываем нашу страницу по IP-адресу сервера — мы снова должны увидеть стартовую страницу Tomcat.
Jasper
Благодаря этому компоненту программист использует технологию JSP. Это как HTML-файлы, только в них встроен Java-код, который может исполняться в момент отправки страницы пользователю. Это позволяет динамически встраивать в страницу любые данные. Jasper превращает Java код в HTML, а также отслеживает изменения и автоматически обновляет их.
Установка Tomcat
Переходим на страницу официального сайта веб-сервера. В меню слева выбираем необходимую версию Tomcat:
* на момент обновления статьи, последняя версия была 10.
Копируем ссылку на архив tar.gz:
Используя скопированную ссылку, скачиваем архив на наш сервер:
Распаковываем содержимое архива в каталог /opt/tomcat:
tar zxvf apache-tomcat-*.tar.gz -C /opt/tomcat --strip-components 1
Готово. Можно запустить сервер командой:
Наш сервер работает.
Посмотреть версию установленного программного обеспечения можно командой:
java -cp /opt/tomcat/lib/catalina.jar org.apache.catalina.util.ServerInfo
Мы должны увидеть что-то на подобие:
Создание служебного пользователя
Создаем пользователя, под которым мы будем авторизовываться в системе.
Внутрь раздела tomcat-users добавим:
* в данном примере мы создадим пользователя admin с паролем password и ролями admin-gui, manager-gui.
systemctl restart tomcat
Читайте также: