Tomcat
Установка Tomcat#
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.96/bin/apache-tomcat-9.0.96.tar.gzCATALINA_HOME- представляет собой корень вашей установки Tomcat, например/home/tomcat/apache-tomcat-9.0.10или C:\Program Files\apache-tomcat-9.0.10.-
CATALINA_BASE- представляет корень конфигурации времени выполнения определенного экземпляра Tomcat. Если вы хотите иметь несколько экземпляров Tomcat на одной машине, используйте свойство CATALINA_BASE. -
cd /opt/ wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.73/bin/apache-tomcat-9.0.73.tar.gzuseradd -r -m -U -d /opt/tomcat tomcatchown -R tomcat:tomcat /opt/tomcatwhich javareadlink -f /usr/bin/javacd /opt/tomcat/bin-
./startup.sh -
Создаём systemd unit
vi /etc/systemd/system/tomcat.service[Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=forking Environment=CATALINA_HOME=/opt/tomcat/ Environment=CATALINA_BASE=/opt/tomcat/ Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh User=tomcat Group=tomcat RestartSec=10 Restart=always [Install] WantedBy=multi-user.targetsystemctl daemon-reloadsystemctl start tomcatsystemctl enable tomcatsystemctl status tomcat
/opt/tomcat
├── conf
│ ├── server.xml # Основной файл конфигурации серверов и виртуальных хостов
│ ├── logging.properties # Общие настройки логирования
│ ├── [host1] # Каталог для настроек виртуального хоста host1 (опционально)
│ │ └── app1.xml # Конфигурация приложения для host1/app1
│ └── [host2] # Каталог для настроек виртуального хоста host2 (опционально)
│ └── app2.xml # Конфигурация приложения для host2/app2
├── logs # Общая директория для логов (или отдельные каталоги для каждого хоста)
│ ├── host1 # Логи виртуального хоста host1 (если настроено)
│ ├── host2 # Логи виртуального хоста host2 (если настроено)
│ └── catalina.out # Основной лог Tomcat
├── webapps # Общая папка для приложений (используется по умолчанию для всех виртуальных хостов)
│ ├── ROOT # Основное приложение по умолчанию
│ ├── examples # Пример приложения
│ └── [host-specific-apps]
│ ├── host1/app1 # Приложение app1 для host1
│ └── host2/app2 # Приложение app2 для host2
└── temp
└── work
└── bin
└── lib
Содержимое CATALINA_HOME в /opt/tomcat:
/bin— скрипты для запуска и остановки Tomcat (startup.sh, catalina.sh)/lib— библиотеки, необходимые для работы сервера (catalina.jar, jasper.jar)
CATALINA_BASE — директория с конфигурациями, временными файлами и приложениями, которые специфичны для каждого экземпляра Tomcat. Для нескольких инстансов рекомендуется создать отдельный CATALINA_BASE для каждого инстанса, например:
/etc/tomcat-instance1, /etc/tomcat-instance2 и т.д.
/conf— конфигурационные файлы для инстанса (server.xml, web.xml, context.xml)./webapps— развернутые приложения и .war файлы для данного инстанса./logs— папка с логами инстанса./temp— временные файлы инстанса./work— кешированные объекты и скомпилированные JSP для данного инстанса.
Про библиотеку Logback для логирования Java приложений#
В logback.xml основные блоки конфигурации включают:
-
<configuration>— корневой блок файла, внутри которого настраиваются все остальные элементы. -
<appender>— определяет, куда будут направляться логи (например, в файл, консоль, удалённый сервер):ConsoleAppender— вывод в консоль (обычно используется для отладки).FileAppender— запись логов в файл.RollingFileAppender— запись в файл с ротацией по размеру или дате.SocketAppender— отправка логов на удалённый сервер.
-
<encoder>— внутри аппендера определяет форматирование логов (например, шаблоны с датой, уровнем лога и сообщением). <root>— задаёт общий уровень логгирования (например, INFO, DEBUG) и связывает его с аппендерами.-
<logger>— настраивает уровень логгирования для отдельных классов или пакетов приложения (переопределяет<root>). -
TRACE: Самый детализированный уровень, для отладки. DEBUG: Для отладки, но с меньшей детализацией, чем TRACE.INFO: Обычные информационные сообщения, отображающие состояние приложения.WARN: Предупреждения о возможных проблемах.ERROR: Сообщения об ошибках, когда выполнение операции не удалось