2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Toivottavasti artikkeli voi antaa sinulle inspiraatiota ja inspiraatiota~
Jos uskot artikkelin olevan hyödyllinen sinulle,Tykkää+Seuraa+Kerää Tue bloggaajaa~
Tomcat on edelleen aktiivinen kehittäjien jokapäiväisessä elämässä, mutta onko meillä syvempää ymmärrystä siitä, vai riittääkö se, että osataan asentaa, konfiguroida ja käynnistää se? Tämä artikkeli toimii tiivistelmänä ja tietueena. Toivon, että tarvitset jotain.
Ympäristötekijät huomioon ottaen jokaisen tulee vertailla ja analysoida kunnolla omaa ohjelmisto- ja laitteistoympäristöään ~ Lue laitteisto- ja ohjelmistoympäristö huolellisesti.
Windows 11 专业版
kehitystyökalut:Tomcat 9.0
Tiedostohakemistorakenne jakautuu pääasiassa: bin, conf, lib, lokit, temp, webapps, work. Tomcatin tiedostohakemistorakenne on suhteellisen selkeä ja jokaisella hakemistolla on oma
特定的功能
ja用途
;
Tässä on useita Tomcatin käynnistys- ja sammutuskomentosarjatiedostoja
重要的文件
Meidän täytyy tietää;
vartenstartup
jashutdown
Sinun täytyy tuntea se hyvin. Meidän on käytettävä sitä joka päivä käynnistääksemme ja sammuttaaksemme tomcas-palvelimen nopeasti. Suffiksi bat, se riippuu käyttöjärjestelmätyypistäsi.
noinCatalina
Tiedosto on myös tomcatilta启动脚本
,jastartup
Suurin ero on jälkimmäinen专注启动
, kun entinen voi vielä ohittaa配置参数
saavuttaa muita tarkoituksia;
Esimerkiksi tässä käytän catalinaa käynnistämään Tomcat, teen näin: entercatalina.bat start
(Windows-järjestelmä)
täällä ontomcat的bin目录
Suoritetaan alla, jos olet määrittänyt环境变量
, voit suorittaa tämän toiminnon missä tahansa, samoin voimme käyttääcatalina.bat stop
lopettaa palvelun;
Joten miten parametrit asetetaan?
Tavallinen tapa on määrittää asiaankuuluvat parametrit muokkaamalla catalina-tiedostoa, ja yleisin käyttämämme parametrimääritys on JVM ja muu siihen liittyvä sisältö, esimerkiksi Catalina-tiedostossa, tässä I
-Xms512m
jo asetettuJVM的初始堆内存
on 512 Mt,-Xmx1024m
jo asetettu最大堆内存
on 1024 Mt,-XX:+UseG1GC
KäytössäG1垃圾回收器
,-Duser.timezone=Asia/Shanghai
jo asetettuJVM的时区
Muokkauksen jälkeen käynnistä tomcat uudelleen, jotta asetukset tulevat voimaan, tässä on vertailu ennen määritystä ja sen jälkeen;
Ohjelma käynnistyy normaalisti, ja voimme nähdä konsolissa määrittämämme parametritiedot;
需要注意的是
, todellisissa tilanteissa emme不建议直接在catalina中修改
, joka ei ole ystävällinen kollipalvelumme päivittämiselle ja ylläpidolle, joten suosittelemme通过setenv配置文件
Parametrien määrittäminen miksi setenv? Katsotaanpa Catalinan asetustiedostoa. Tämä kappale kertoo, että komentosarja tekee päätöksen, kun se on olemassa, sitä ei yleensä ole olemassa nykyisessä tomcat-hakemistossa luoda itse sellaisen manuaalisesti.
Kun olet luonut setenv:n (setenv.bat Windowsissa, setenv.sh mac/linuxissa), lisää siihen kokoonpanot eri järjestelmien mukaan.
// 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
palvelutiedosto, näemme tämän tiedoston vain Windowsissa, sitä käytetään yleensä Tomcat-palvelun rekisteröintiin järjestelmäpalveluna. Pääasiallinen käyttö on bin-hakemiston kirjoittaminen ja service.bat install + mukautetun palvelun nimi;
Sitten näemme Windows-palvelussa, että se ei käynnisty tällä hetkellä. Voit käynnistää tai käynnistää tietokoneen uudelleen napsauttamalla sitä.
conf-hakemistossa on useita Tomcat-palvelimen globaaleja määritystiedostoja.
Apache Tomcatin server.xml-määritystiedostossa voit配置多个端口
, mutta yleisimpiä niistä ovatHTTP服务的端口
(Oletus on 8080),AJP服务的端口
(oletus on 8009), jaSSL/TLS(即HTTPS)的端口
(Jos käytössä, oletusarvo voi olla 8443, mutta tämä riippuu tietystä kokoonpanosta)
【1】http-liitinportti
HTTP-liitintä käytetään Tomcatiin tulevien HTTP-pyyntöjen käsittelemiseen. Oletusarvoisesti Tomcat kuuntelee porttia 8080. Voit muuttaa tätä porttia muokkaamalla tarran porttimääritettä.
【2】AJP-liitinportti
AJP-liitintä (Apache JServ Protocol) käytetään tiedonsiirtoon Tomcatin ja Apache HTTP-palvelimen välillä, erityisesti käytettäessä mod_jk-moduulia. Oletusarvoisesti Tomcat kuuntelee porttia 8009.
AJP目前我们其实不怎么使用,因为nginx已经可以替代它;它一开始是默认注释的,根据自己需要来开启
【3】SSL/TLS (HTTPS) -liitäntäportti
Jos aiot antaa Tomcatin käsittelemään HTTPS-pyyntöjä, sinun on määritettävä SSL/TLS-liitin.Tämä edellyttää sellaisten tietojen määrittämistä, kuten SSL-varmenteen avainsäilö (avainsäilö) ja salasana
这个也是默认注释的,当你需要用到https请求的时候,再去开启;certificateKeystoreFile和certificateKeystorePassword应该指向你的密钥库文件和它的密码。这些值需要根据你的实际密钥库文件和密码进行更改
Tomcatin asennushakemistossaconf目录
keskelläweb.xml文件
Joo全局配置文件
, joka määrittää Tomcat-palvelimen laajuisen oletusservlet- ja MIME-tyyppikartoituksen jne. Yleensä kehittäjien ei tarvitse muokata tätä globaalia web.xml-tiedostoa usein, ellei sinun tarvitse lisätä globaalia Servlet-kartoitusta, suodatinta (Filter), kuuntelijaa (Listener) jne. koko Tomcat-palvelimeen.
一些配置是可以通过注解(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>
Muokkaamalla tätä tiedostoa voit määrittää lokin tason, muodon, tulosteen sijainnin jne. Tästä on hyötyä Tomcat-palvelimien ja niiden käyttöön otettujen sovellusten valvonnassa ja virheenkorjauksessa.
# 设置日志的根级别和处理器
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
Toiminto: Tallenna Tomcatin suorittamiseen tarvittavat kirjastotiedostot (JAR-tiedostot).
Huomautus: Vaikka jotkin Tomcatin vanhat versiot tai tietyt kokoonpanot voivat tallentaa JAR-tiedostoja muihin hakemistoihin, kuten common/lib, server/lib tai share/lib, Tomcatin nykyiset versiot tallentavat mieluummin ydinkirjastotiedostot lib-hakemistoon.
Toiminto: Tallenna lokitiedostot, kun Tomcat suoritetaan.
Sisältö: sisältää erilaisia lokitietoja Tomcatin käynnistys-, käyttö- ja sammutusprosessien aikana, kuten catalina.out, localhost.log jne.
这里catalina.2024-7-10是通过日志滚动策略生成的,用于记录Catalina容器的日常运行日志;
locahost.2024-7-10,localhost_access_log.2024-7-10分别记录了应用程序的日志信息和访问日志
;
host-manager日志是监控和管理Tomcat服务器上虚拟主机的重要工具。通过分析这些日志文件,管理员可以了解虚拟主机的使用情况,以及是否存在潜在的问题或安全风险
Yleensä kun tarkistamme lokit päivittäin, emme valitse Catalina.log/Catalina.out/appName.log jne.;
Toiminto: Tomcatin pääverkkojulkaisuhakemisto, jota käytetään verkkosovellusten tallentamiseen.
Sisältö: Oletuksena sovellus voidaan julkaista sijoittamalla verkkosovellustiedostot tähän hakemistoon. Tomcat tarkistaa automaattisesti tässä hakemistossa olevat sovellukset ja ottaa ne käyttöön.
Verkkosovellusten ominaisuudet ovat:
【1】Automaattinen käyttöönotto: Tomcat tarkistaa säännöllisesti kaiken webapps-hakemiston sisällön.kun asetat a WAR 文件
(esimerkiksi myapp.war), kun Tomcat sijoitetaan webapps-hakemistoon, se havaitsee automaattisesti tämän tiedoston ja尝试部署它
.Jos tiedosto on WAR-paketti, Tomcat purkaa tiedoston ensin ja ottaa sitten sovelluksen käyttöön puretun hakemistorakenteen mukaisesti.
【2】Hallinta: käyttämällä webapps-hakemistossa olevia tiedostoja suoraan voit hallita verkkosovelluksia Tomcatissa.Voit esimerkiksi läpäistä删除目录来卸载应用程序
tai kautta替换 WAR 文件
Tuleuusiasovellus.
【3】 Räätälöity käyttöönottopolku:Tomcat 默认将 Web 应用程序部署在 webapps 目录下
, mutta voit myös muokata Tomcat-määritystiedostoa (esim server.xml
) määrittääksesi toisen hakemiston sovelluksen käyttöönottopoluksi. Haluan mainita tämän, on harvinaista nähdä toisen polun määriteltynä, mutta se ei ole mahdotonta;
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- 配置一个Context来指定其他目录为应用程序的部署路径 -->
<Context path="/myapp" docBase="/path/to/your/application" reloadable="true">
<!-- 这里可以添加更多的Context配置 -->
</Context>
<!-- 其他Host配置 -->
</Host>
Toiminto: Tallenna JSP-kääntämisen jälkeen luodut luokkatiedostot ja Servletin väliaikaiset tiedostot.
Huomautus: Tyhjennä tämän hakemiston sisältö ja käynnistä Tomcat uudelleen tyhjentääksesi JSP:n ja Servletin käännetty välimuisti.
简单的来说,work的作用就是JSP编译和缓存来提高tomcat的性能,主要体现在响应速度上;
注意需要定期清理该目录,长期tomcat的运行和更新会导致该目录越来愈大;占用大量的磁盘空间;
Toiminto: Tallenna väliaikaiset tiedostot, jotka on luotu Tomcatin käytön aikana.
Huomautus: Näitä väliaikaisia tiedostoja käytetään yleensä tukemaan Tomcatin sisäisiä toimintoja, kuten istunnonhallintaa, tiedostojen lataamista jne.
这个目录有点类似于work目录,也是通过缓存临时文件来提高应用程序的性能
[1] Kun olet tehnyt tarvittavat asetukset, sinun on usein käynnistettävä Tomcat uudelleen, jotta se tulee voimaan;
[2] Vaikka temp- ja työhakemistot ovat välimuistitiedostoja ja väliaikaisia tiedostoja, sinun on silti tehtävä varmuuskopio tyhjennettäessä ja vahvistettava, ovatko nämä tiedostot edelleen muiden sovellusprosessien käytössä.
[3] Kun sammutus suoritetaan, se ei pysähdy heti, vaan yrittää sammuttaa Tomcatin sulavasti. Tämä prosessi voi kestää hetken pysähtyä tilanteen mukaan. Voit arvioida, onko Tomcat sammutettu ;