моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Надеюсь, статья сможет подарить вам вдохновение и вдохновение~
Если вы считаете, что статья вам полезна,Нравится+Подписаться+Собрать Пожалуйста, поддержите блогера~
Tomcat по-прежнему активно участвует в повседневной жизни разработчиков, но есть ли у нас более глубокое понимание этого или достаточно просто знать, как его установить, настроить и запустить? Эта статья служит моим резюме и записью. Надеюсь, здесь есть что-то, что вам нужно;
Учитывая факторы окружающей среды, каждый должен правильно сравнивать и анализировать свою собственную программную и аппаратную среду. Пожалуйста, внимательно прочитайте аппаратную и программную среду.
Windows 11 专业版
Инструменты разработки:Tomcat 9.0
Структура каталогов файлов в основном разделена на: bin, conf, lib, logs, temp, webapps, work. Структура каталогов файлов в Tomcat относительно понятна, и каждый каталог имеет свою собственную.
特定的功能
и用途
;
В каталоге bin хранятся файлы сценариев запуска и завершения работы Tomcat. Вот несколько файлов;
重要的文件
Мы должны знать;
дляstartup
иshutdown
Вы, должно быть, хорошо с ним знакомы. Мы должны использовать его каждый день, чтобы быстро запускать и выключать сервер Tomcat. Что касается суффикса bat, это зависит от типа вашей операционной системы.
оCatalina
Файл также из Tomcat启动脚本
,иstartup
Основное отличие состоит в том, что последний专注启动
, а первый еще может пройти配置参数
для достижения других целей;
Например, здесь я использую Catalina для запуска Tomcat, я сделаю это: введитеcatalina.bat start
(система Windows)
вотtomcat的bin目录
Выполняется, если вы настроили环境变量
, то вы можете выполнить эту операцию в любом месте, аналогично мы также можем использовать;catalina.bat stop
остановить службу;
Итак, как настроить параметры?
Обычный подход заключается в настройке соответствующих параметров путем изменения файла Catalina, а наиболее распространенной конфигурацией параметров, которую мы используем, является JVM и другой связанный контент, например, в файле Catalina, здесь я;
-Xms512m
уже настроенJVM的初始堆内存
составляет 512 МБ,-Xmx1024m
уже настроен最大堆内存
составляет 1024 МБ,-XX:+UseG1GC
ВключеноG1垃圾回收器
,-Duser.timezone=Asia/Shanghai
уже настроенJVM的时区
После внесения изменений перезапустите Tomcat, чтобы конфигурация вступила в силу. Вот сравнение различий до и после настройки;
Программа запускается нормально, и мы можем видеть информацию о параметрах, которые мы настроили на консоли;
需要注意的是
, в реальных ситуациях мы не不建议直接在catalina中修改
, что не способствует обновлению и обслуживанию нашего сервиса tomcat, поэтому мы рекомендуем通过setenv配置文件
Для настройки параметров зачем setenv? Давайте посмотрим на файл конфигурации Catalina. В этом абзаце говорится, что сценарий вынесет решение при запуске. Если этот файл существует, он будет автоматически вызван. Этот файл обычно не существует в текущем каталоге Tomcat, и нам это нужно. чтобы вручную создать его самостоятельно.
После создания setenv (setenv.bat в Windows, setenv.sh в mac/linux), затем добавьте в него конфигурации для разных систем, обратите внимание, что синтаксис будет немного отличаться;
// mac或linux
export JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC -Duser.timezone=Asia/Shanghai"
// windows
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:+UseG1GC -Duser.timezone=Asia/Shanghai
файл службы, мы видим этот файл только в Windows, он обычно используется для регистрации службы Tomcat в качестве системной службы; основное использование — войти в каталог bin и выполнить установку service.bat + имя пользовательской службы;
Затем мы видим в службе Windows, что она в данный момент не запущена. Можно нажать кнопку запуска или перезагрузки компьютера. Она запустится автоматически при следующей перезагрузке компьютера;
В каталоге conf хранятся различные файлы глобальной конфигурации сервера Tomcat.
В файле конфигурации server.xml Apache Tomcat вы можете配置多个端口
, но наиболее распространенными из них являютсяHTTP服务的端口
(по умолчанию 8080),AJP服务的端口
(по умолчанию 8009) иSSL/TLS(即HTTPS)的端口
(Если включено, значением по умолчанию может быть 8443, но это зависит от конкретной конфигурации)
【1】порт HTTP-разъема
HTTP-коннектор используется для обработки HTTP-запросов, поступающих в Tomcat. По умолчанию Tomcat прослушивает порт 8080. Вы можете изменить этот порт, изменив атрибут порта метки.
【2】Порт разъема AJP
Коннектор AJP (протокол Apache JServ) используется для связи между Tomcat и HTTP-сервером Apache, особенно при использовании модуля mod_jk. По умолчанию Tomcat прослушивает порт 8009.
AJP目前我们其实不怎么使用,因为nginx已经可以替代它;它一开始是默认注释的,根据自己需要来开启
【3】Разъемный порт SSL/TLS (HTTPS)
Если вы планируете, чтобы Tomcat обрабатывал HTTPS-запросы, вам необходимо настроить соединитель SSL/TLS.Это предполагает указание такой информации, как хранилище ключей (хранилище ключей) и пароль SSL-сертификата.
这个也是默认注释的,当你需要用到https请求的时候,再去开启;certificateKeystoreFile和certificateKeystorePassword应该指向你的密钥库文件和它的密码。这些值需要根据你的实际密钥库文件和密码进行更改
В каталоге установки Tomcatconf目录
серединаweb.xml文件
да全局配置文件
, который определяет сопоставление типов сервлетов и MIME по умолчанию для всего сервера Tomcat и т. д. Обычно этот глобальный файл web.xml не требует частого изменения разработчиками, если только вам не нужно добавить глобальное сопоставление сервлетов, фильтр (Filter), прослушиватель (Listener) и т. д. на весь сервер Tomcat;
一些配置是可以通过注解(Annotations)来完成,这减少了对web.xml文件的依赖;
<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">
<!--
注意:默认情况下,Tomcat Manager是禁用的,并且没有设置任何用户。
要启用Tomcat Manager,并为其设置用户,你需要取消以下注释,
并根据需要修改用户名、密码和角色。
-->
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
<user username="admin" password="admin123" roles="manager-script"/>
</tomcat-users>
Редактируя этот файл, вы можете определить уровень журнала, формат, место вывода и т. д. Это полезно для мониторинга и отладки серверов Tomcat и развернутых на них приложений.
# 设置日志的根级别和处理器
handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
# 设置根日志级别
.level = INFO
# 设置特定类别的日志级别
org.apache.catalina.level = INFO
org.apache.catalina.startup.level = FINE
org.apache.catalina.session.level = FINE
org.apache.catalina.util.lifecycle.level = FINE
# 为不同的处理器(文件处理器和控制台处理器)设置格式和文件路径
# 文件处理器示例
1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.
2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost.
3manager.org.apache.juli.FileHandler.level = FINE
3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.FileHandler.prefix = manager.
4host-manager.org.apache.juli.FileHandler.level = FINE
4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.FileHandler.prefix = host-manager.
# 控制台处理器
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
# 设置日志文件的编码
org.apache.juli.FileHandler.encoding = UTF-8
# Java 类的日志级别
org.apache.jasper.level = INFO
org.apache.coyote.level = INFO
Функция: Сохранение файлов библиотеки (файлов JAR), необходимых для запуска Tomcat.
Примечание. Хотя некоторые старые версии Tomcat или определенные конфигурации могут хранить файлы JAR в других каталогах, таких как common/lib, server/lib илиshared/lib, современные версии Tomcat предпочитают хранить файлы основной библиотеки в каталоге lib.
Функция: Сохраняйте файлы журналов при запуске Tomcat.
Содержимое: включая различную информацию журнала во время запуска Tomcat, процессов запуска и завершения работы, таких как catalina.out, localhost.log и т. д.
这里catalina.2024-7-10是通过日志滚动策略生成的,用于记录Catalina容器的日常运行日志;
locahost.2024-7-10,localhost_access_log.2024-7-10分别记录了应用程序的日志信息和访问日志
;
host-manager日志是监控和管理Tomcat服务器上虚拟主机的重要工具。通过分析这些日志文件,管理员可以了解虚拟主机的使用情况,以及是否存在潜在的问题或安全风险
Обычно, когда мы ежедневно проверяем журналы, мы не выбираем Catalina.log/Catalina.out/appName.log и т. д.;
Функция: основной каталог веб-публикаций Tomcat, используемый для хранения веб-приложений.
Содержимое: по умолчанию приложение можно опубликовать, поместив файлы веб-приложения в этот каталог. Tomcat автоматически просканирует приложения в этом каталоге и развернет их.
Характеристики веб-приложений:
【1】Автоматическое развертывание: Tomcat будет регулярно сканировать все содержимое каталога веб-приложений.когда вы размещаете WAR 文件
(например, myapp.war) при размещении в каталоге веб-приложений Tomcat автоматически обнаружит этот файл и尝试部署它
.Если файл представляет собой пакет WAR, Tomcat сначала распакует файл, а затем развернет приложение в соответствии с распакованной структурой каталогов.
【2】Управление: напрямую управляя файлами в каталоге веб-приложений, вы можете легко управлять веб-приложениями на Tomcat.Например, вы можете пройти删除目录来卸载应用程序
или через替换 WAR 文件
Приходитьвозобновлятьприложение.
【3】Индивидуальный путь развертывания:Tomcat 默认将 Web 应用程序部署在 webapps 目录下
, но вы также можете изменить файл конфигурации Tomcat (например, server.xml
), чтобы указать другой каталог в качестве пути развертывания приложения. Позвольте мне упомянуть об этом: редко можно увидеть другой путь, но это не невозможно;
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- 配置一个Context来指定其他目录为应用程序的部署路径 -->
<Context path="/myapp" docBase="/path/to/your/application" reloadable="true">
<!-- 这里可以添加更多的Context配置 -->
</Context>
<!-- 其他Host配置 -->
</Host>
Функция: Храните файлы классов, созданные после компиляции JSP, и временные файлы сервлета.
Примечание. Очистите содержимое этого каталога и перезапустите Tomcat, чтобы очистить скомпилированный кэш JSP и сервлета.
简单的来说,work的作用就是JSP编译和缓存来提高tomcat的性能,主要体现在响应速度上;
注意需要定期清理该目录,长期tomcat的运行和更新会导致该目录越来愈大;占用大量的磁盘空间;
Функция: хранить временные файлы, созданные во время работы Tomcat.
Примечание. Эти временные файлы обычно используются для поддержки внутренних операций Tomcat, таких как управление сеансами, загрузка файлов и т. д.
这个目录有点类似于work目录,也是通过缓存临时文件来提高应用程序的性能
[1] После внесения соответствующих настроек вам часто необходимо перезапустить Tomcat, чтобы изменения вступили в силу;
[2] Хотя временные и рабочие каталоги являются файлами кэша и временными файлами, вам все равно необходимо сделать резервную копию при их очистке и убедиться, что эти файлы все еще заняты другими процессами приложения;
[3] При выполнении выключения он не останавливается немедленно, а пытается корректно завершить работу Tomcat. Этот процесс может занять некоторое время, в зависимости от ситуации. Вы можете определить, был ли Tomcat выключен, проверив состояние порта Tomcat; ;