Teknologian jakaminen

[Tomcat-hakemiston yksityiskohtainen selitys] Mitä muuta sinun tulee tietää Tomcatista

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~

Avausmuistiinpanot

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.

Lisää kuvan kuvaus tähän

1. Ympäristön peruskuvaus

Ympäristötekijät huomioon ottaen jokaisen tulee vertailla ja analysoida kunnolla omaa ohjelmisto- ja laitteistoympäristöään ~ Lue laitteisto- ja ohjelmistoympäristö huolellisesti.

1.1 Laitteistoympäristö

Windows 11 专业版

1.2 Ohjelmistoympäristö

kehitystyökalut:Tomcat 9.0

2. Tomcat-tiedostorakenne

Tiedostohakemistorakenne jakautuu pääasiassa: bin, conf, lib, lokit, temp, webapps, work. Tomcatin tiedostohakemistorakenne on suhteellisen selkeä ja jokaisella hakemistolla on oma特定的功能ja用途

Lisää kuvan kuvaus tähän

2.1 bin hakemisto

Tässä on useita Tomcatin käynnistys- ja sammutuskomentosarjatiedostoja重要的文件Meidän täytyy tietää;

  • .sh-päätteiset tiedostot: käynnistys- ja sammutusskriptit Linux- tai Mac-käyttöjärjestelmissä.
  • .bat-päätteiset tiedostot: käynnistys- ja sammutuskomentosarjat Windows-alustoilla.
  • catalina.sh: Tomcatin ydinkäynnistysskripti, jossa JVM-parametrit voidaan asettaa.
  • startup.sh ja shutdown.sh: käytetään Tomcat-palvelimen käynnistämiseen ja sammuttamiseen.
  • service.bat: käytetään rekisteröimään tomcat-palvelu Windowsissa.

2.1.1 käynnistys ja sammutus

vartenstartupjashutdown 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.

2.1.2 Catalina

noinCatalinaTiedosto on myös tomcatilta启动脚本,jastartupSuurin 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ä)
Lisää kuvan kuvaus tähän
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 stoplopettaa 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-Xms512mjo asetettuJVM的初始堆内存on 512 Mt,-Xmx1024mjo asetettu最大堆内存on 1024 Mt,-XX:+UseG1GCKäytössäG1垃圾回收器-Duser.timezone=Asia/Shanghaijo asetettuJVM的时区

Lisää kuvan kuvaus tähän
Muokkauksen jälkeen käynnistä tomcat uudelleen, jotta asetukset tulevat voimaan, tässä on vertailu ennen määritystä ja sen jälkeen;
Lisää kuvan kuvaus tähän
Lisää kuvan kuvaus tähän
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.
Lisää kuvan kuvaus tähän
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"
  • 1
  • 2
// windows
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:+UseG1GC -Duser.timezone=Asia/Shanghai
  • 1
  • 2

2.1.3 service.bat (Windows)

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;
Lisää kuvan kuvaus tähän
Lisää kuvan kuvaus tähän
Sitten näemme Windows-palvelussa, että se ei käynnisty tällä hetkellä. Voit käynnistää tai käynnistää tietokoneen uudelleen napsauttamalla sitä.

2.2 conf-hakemisto

conf-hakemistossa on useita Tomcat-palvelimen globaaleja määritystiedostoja.

  • server.xml: Tomcatin päämääritystiedosto, joka sisältää palvelun, liittimen, moottorin, isännän ja muiden komponenttien määritystiedot.
  • web.xml: Servlet-määritysstandardia noudattava määritystiedosto, jota käytetään servlettien määrittämiseen ja oletusasetustietojen tarjoamiseen kaikille verkkosovelluksille.
  • tomcat-users.xml: Asiaan liittyvät roolit, käyttäjät, salasanat ja muut Realm-todennuksessa käytetyt tiedot.
  • Context.xml: Oletusmääritystiedot kaikille isännille.
  • catalina.policy: Javaan liittyvä suojauskäytännön määritystiedosto.
  • catalina.properties: Tomcatin sisäinen pakettimääritys ja pääsyyn liittyvät ohjaustiedostot.
  • logging.properties: Tomcat-loggeriin liittyvät määritystiedot.

2.2.1 server.xml

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ä.

Lisää kuvan kuvaus tähän
【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

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

2.2.2 web.xml (vähän muuttunut)

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文件的依赖;

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

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
  • 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 -hakemisto (periaatteessa muuttumaton)

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.

2.4 lokihakemisto

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.

Lisää kuvan kuvaus tähän
这里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.;

2.5 webapps-hakemisto

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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

2.6 työhakemisto

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的运行和更新会导致该目录越来愈大;占用大量的磁盘空间;

2.7 väliaikainen hakemisto

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目录,也是通过缓存临时文件来提高应用程序的性能

3. Lopuksi

[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 ;