Technology sharing

[Detailed explanation of Tomcat Directory] Quid aliud debes scire de Tomcat

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Articulus spero te dare potest inspirationem et inspirationem ~
Si tibi utile putas articulum,Velut+ sectare+ Collecta Quaeso suscipe blogger~

Opening Notes

Tomcat adhuc activa in vita cotidiana tincidunt, sed habemus profundiorem intelligentiam eius, an satisne est nosse quomodo instituere, configurare et incipere? Articulus hic pro summario meo et recordo inservit.

Insert imaginem descriptionis hic

1. Vulgate amet descriptionem

Considerans factores environmental, quisque recte comparare et resolvere debet suos programmata et hardware ambitus suos ~ Quaeso lege hardware et software diligenter.

1.1 hardware environment

Windows 11 专业版

1.2 Software environment

instrumenta progressionis:Tomcat 9.0

2. Tomcat lima compages

Tabella directorii structura maxime dividitur in: bin, conf, lib, tigna, temp, webapps, opus特定的功能et用途

Insert imaginem descriptionis hic

2.1 bin directory

bin directorium thesaurorum Tomcat startup et lima scriptorum shutdown;重要的文件Scire debemus;

  • Lima in .sh desinentia: startup et shutdown scripta in suggestis Linux vel Mac.
  • Files ending in .bat: startup and shutdown scripts in Windows platforms.
  • catalina.sh: Tomcat scriptor nucleus startup script, ubi JVM parametri erigi possunt.
  • startup.sh et shutdown.sh: incipere et claudere solebat Tomcat servo respective.
  • servicium.bat: servitium tomcat in fenestras ad subcriptio.

2.1.1 startup et shutdown

for*startupetshutdown Cum eo familiarissimum esse debes. Quod vespertilio suffixo, id genus operandi rationi dependet.

2.1.2 Catilina

de "CatalinaScapus etiam ex tomcat启动脚本,etstartupPraecipua differentia est, quod haec专注启动prior vero potest transire配置参数ad alia proposita consequi;

Exempli causa, hic uti catalina ut Tomcat committitur, hoc faciam: intracatalina.bat start (Fenestra ratio)
Insert imaginem descriptionis hic
hic esttomcat的bin目录Actum sub, si configuratum环境变量ergo hanc operationem in quovis loco facere potes;catalina.bat stopobsequium desistere ;

Quomodo igitur parametri configurare?

Solet accessus ad parametros pertinentes configurare in catalina lima modificando, et parametri frequentissima figura utimur est JVM et alia contenta affinia;-Xms512miam setupJVM的初始堆内存est 512MB;-Xmx1024miam setup最大堆内存est 1024MB;-XX:+UseG1GCEnabledG1垃圾回收器-Duser.timezone=Asia/Shanghaiiam setupJVM的时区

Insert imaginem descriptionis hic
Post modificationem, sileo tomcat ut configurationem effectum sortiatur;
Insert imaginem descriptionis hic
Insert imaginem descriptionis hic
Propositum regulariter incipit, et videre possumus informationem moduli in console figuratam;

需要注意的是in re vera non possumus不建议直接在catalina中修改, quod non est amica upgrade et sustentationem servitutis nostrae tomcat, ita commendamus通过setenv配置文件 Parametri configurare; Inspice tabulam conformationis catalinae. Haec paragraphus docet nos scripturam iudicium facere cum incipit. Si haec fasciculus existit, automatice vocabitur manually creare ipsi.
Insert imaginem descriptionis hic
Post setenv creando (setenv.bat in Windows, setenv.sh in mac/linux), adde configurationes in eo secundum diversa systemata;

// mac或linux
export JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC -Duser.timezone=Asia/Shanghai"
  • 1
  • 2
// windows
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:+UseG1GC -Duser.timezone=Asia/Shanghai
  • 1
  • 2

2.1.3 service.bat(Windows

fasciculi servitii, solum hunc fasciculum in Fenestra conspicimus, consuetum est servitium Tomcatis pro systematis servitio subiungere;
Insert imaginem descriptionis hic
Insert imaginem descriptionis hic
Tunc videre possumus in fenestris officium quod hoc tempore non incepit.

2.2 conf directory

Conf directorium varias tabulas conformationis globalis Tomcat servientis reponit.

  • server.xml: Tomcat principale file configurationis, inter informationes configurationis servitii, Connectoris, Engine, Hostiae et aliorum componentium.
  • web.xml: Configurationis fasciculus qui vexillum specificationem Servlet sequitur et ad servlets configurare adhibetur et pro omnibus applicationibus interretialibus indagationem defaltam praebebit.
  • tomcat-users.xml: munera, usores, Tesserae et aliae informationes in Regno authenticas adhibitae sunt.
  • context.xml: Default configuration information pro omnibus exercitibus.
  • catalina.policy: Java-consilium securitatis relatas configuration file.
  • catalina.properties: Tomcat sarcina interna definitio et accessus imaginum dicione relatarum.
  • logging.properties: configurationis informationes ad Tomcat logger.

2.2.1 server.xml

In Apache Tomcat scriptor servo.xml configurationis fasciculi, potes配置多个端口frequentissima autem ex his includunturHTTP服务的端口(default is 8080);AJP服务的端口(Defectus est (VIII)IX) etSSL/TLS(即HTTPS)的端口(Si enabled, defalta 8443 esse potest, sed hoc ex certa configuratione pendent)
1】http iungo portum

Connector HTTP adhibetur petitiones HTTP tractandas in Tomcat venientes. De facto, Tomcat in portu 8080 audit. Hunc portum mutare potes modificatione portum attributi pittacii.

Insert imaginem descriptionis hic
2】AJP iungo portum

AJP (Apache JServ Protocol) connector communicationis adhibetur inter Tomcat et Apache HTTP servo, praesertim cum mod_jk moduli utens. De facto, Tomcat in portu 809 auscultat.

AJP目前我们其实不怎么使用,因为nginx已经可以替代它;它一开始是默认注释的,根据自己需要来开启

3】SSL/TLS (HTTPS) iungo portum

Si vis petitiones HTTPS Tomcat habere, debes SSL/TLS iungo configurare.Hoc involvit speciem informationem sicut in keystore (keystore) et password de SSL certificatorium

Insert imaginem descriptionis hic
这个也是默认注释的,当你需要用到https请求的时候,再去开启;certificateKeystoreFile和certificateKeystorePassword应该指向你的密钥库文件和它的密码。这些值需要根据你的实际密钥库文件和密码进行更改

2.2.2 web.xml.

In Tomcat institutionem Directoryconf目录mediumweb.xml文件sic全局配置文件 , quod definit Servlet et MIME destinata typus defalta Tomcat servientis latae , etc. Solet hic fasciculus global telae.xml saepe ab electricis modificari non indiget, nisi global Servlet destinata, sparguntur (Filter), auscultatoris (auditoris) etc. toti Tomcat servienti addere debes;

一些配置是可以通过注解(Annotations)来完成,这减少了对web.xml文件的依赖;

2.2.3 tomcat-users.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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

2.2.4 logging.properties

Hunc fasciculum emendo, te aequalem stipem, format, output locum definire potes, etc. Hoc utile est ad vigilantiam et debugging Tomcat servientes et earum applicationes instruxit.

# 设置日志的根级别和处理器  
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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

2.3 lib Directory (plerumque immutata)

Function: Fasciculi bibliothecarum (JAR files) ad currendum Tomcat.
Nota: Quamvis quaedam antiquae versiones Tomcat vel figurarum specificarum in aliis directoriis imaginum JAR reponendas, ut commune/lib, server/lib vel communicatum/lib, recentiores versiones Tomcat malunt nucleum bibliothecae condere in directorio lib.

2.4 omnia Directory

Munus: lima stipes copia cum Tomcat supplicium est.
Content: inter varias informationes logarum in Tomcat startup, processus currit et shutdown, ut catalina.out, localhost.log, etc.

Insert imaginem descriptionis hic
这里catalina.2024-7-10是通过日志滚动策略生成的,用于记录Catalina容器的日常运行日志;

locahost.2024-7-10,localhost_access_log.2024-7-10分别记录了应用程序的日志信息和访问日志;

host-manager日志是监控和管理Tomcat服务器上虚拟主机的重要工具。通过分析这些日志文件,管理员可以了解虚拟主机的使用情况,以及是否存在潜在的问题或安全风险

Solet cum acta cottidie inspicimus, Catilina.log/Catalina.out/appName.log, etc.

2.5 webapps Directory

Munus: Tomcat principale interretialem evulgandi directorium, ad reponendas applicationes interretiales.
Content: Per defaltam, applicationis divulgari potest applicatio lima in hoc indice ponendo. Tomcat automatice applicationes in hoc directorio lustrabit et eas explicabit.

Notae interretiales sunt:
【1】 Automatarie instruere: Tomcat regulariter omnia contenta in directorio interretiali lustrare.cum ponere * WAR 文件(exempli gratia myapp.war) cum in directorio interretiali positus, Tomcat hunc fasciculum sponte deprehendet et尝试部署它 .Si fasciculus bellum sarcina est, Tomcat tabellam primum deprimet et deinde applicationem secundum structuram decompressae directorii explicabit.
【2】Management: Per directe operando lima in presul interretialibus, facile potes applicationes interretiales in Tomcat regere.Exempli gratia, transire potes删除目录来卸载应用程序, vel per替换 WAR 文件Venirenovareapp.

3】 Customized instruere iter:Tomcat 默认将 Web 应用程序部署在 webapps 目录下, sed etiam limam configurationis Tomcat mutare (ut server.xml ) alium directorium specificare ut semitam applicationis instruere. Hoc modo commemoro, rarum est videre aliam viam definire;

<Host name="localhost"  appBase="webapps"  
        unpackWARs="true" autoDeploy="true">  
  
    <!-- 配置一个Context来指定其他目录为应用程序的部署路径 -->  
    <Context path="/myapp" docBase="/path/to/your/application" reloadable="true">  
        <!-- 这里可以添加更多的Context配置 -->  
    </Context>  
  
    <!-- 其他Host配置 -->  
  
</Host>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

2.6 opus Directory

Munus: Repone fasciculorum classium ex compilatione JSP generatarum et ad tempus imagini Servlet.
Nota: contenta huius directorii et sileo Tomcat ut purgare cella compilata JSP et Servlet purgare.

简单的来说,work的作用就是JSP编译和缓存来提高tomcat的性能,主要体现在响应速度上;
注意需要定期清理该目录,长期tomcat的运行和更新会导致该目录越来愈大;占用大量的磁盘空间;

2.7 temp Directory

Munus: Copia imaginum temporalium quae in cursu Tomcat generantur.
Nota: haec temporanea fasciculi solent sustentare operationes internas Tomcat, ut administratione sessionis, fasciculi fasciculi, etc.

这个目录有点类似于work目录,也是通过缓存临时文件来提高应用程序的性能

3. Denique

[1] Post configurationes pertinentes, saepe debes sileo Tomcat ut effectum sortiatur;

[2] Quamvis temp et opera directoria sunt lima cella et fasciculi temporales, opus tamen est ut tergum purgandis illis et confirmandis num haec fasciculi aliis processibus applicationis adhuc occupantur;

[3] Cum shutdown peractum est, non statim cessat, sed eleganter Tomcat occludere conatur. Hic processus potest aliquandiu consistere secundum rei condicionem; ;