Κοινή χρήση τεχνολογίας

[Λεπτομερής εξήγηση του καταλόγου Tomcat] Τι άλλο πρέπει να γνωρίζετε για το Tomcat

2024-07-12

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

Ελπίζω ότι το άρθρο μπορεί να σας δώσει έμπνευση και έμπνευση~
Εάν πιστεύετε ότι το άρθρο είναι χρήσιμο για εσάς,Like+Follow+Collect Υποστηρίξτε τον blogger~

Σημειώσεις έναρξης

Το Tomcat εξακολουθεί να είναι ενεργό στην καθημερινή ζωή των προγραμματιστών, αλλά έχουμε μια βαθύτερη κατανόηση του ή αρκεί να ξέρουμε πώς να το εγκαταστήσουμε, να ρυθμίσουμε και να το ξεκινήσουμε; Αυτό το άρθρο χρησιμεύει ως περίληψη και εγγραφή μου, ελπίζω να υπάρχει κάτι που χρειάζεστε.

Εισαγάγετε την περιγραφή της εικόνας εδώ

1. Βασική περιγραφή περιβάλλοντος

Λαμβάνοντας υπόψη περιβαλλοντικούς παράγοντες, ο καθένας θα πρέπει να συγκρίνει και να αναλύει σωστά το δικό του περιβάλλον λογισμικού και υλικού ~ Διαβάστε προσεκτικά το περιβάλλον υλικού και λογισμικού.

1.1 Περιβάλλον υλικού

Windows 11 专业版

1.2 Περιβάλλον λογισμικού

εργαλεία ανάπτυξης:Tomcat 9.0

2. Δομή αρχείου Tomcat

Η δομή του καταλόγου αρχείων χωρίζεται κυρίως σε: bin, conf, lib, logs, temp, webapps, work Η δομή του καταλόγου αρχείων στο Tomcat είναι σχετικά σαφής και κάθε κατάλογος έχει το δικό του特定的功能και用途

Εισαγάγετε την περιγραφή της εικόνας εδώ

Κατάλογος 2.1 bin

Ο κατάλογος κάδου αποθηκεύει τα αρχεία δέσμης ενεργειών εκκίνησης και τερματισμού της Tomcat εδώ重要的文件Πρέπει να ξέρουμε.

  • Αρχεία που τελειώνουν σε .sh: σενάρια εκκίνησης και τερματισμού λειτουργίας σε πλατφόρμες Linux ή Mac.
  • Αρχεία που τελειώνουν σε .bat: σενάρια εκκίνησης και τερματισμού λειτουργίας σε πλατφόρμες Windows.
  • catalina.sh: Το βασικό σενάριο εκκίνησης της Tomcat, όπου μπορούν να οριστούν οι παράμετροι JVM.
  • startup.sh και shutdown.sh: χρησιμοποιείται για την εκκίνηση και τον τερματισμό του διακομιστή Tomcat αντίστοιχα.
  • service.bat: χρησιμοποιείται για την εγγραφή της υπηρεσίας tomcat στα Windows.

2.1.1 Εκκίνηση και τερματισμός λειτουργίας

Γιαstartupκαιshutdown Πρέπει να είστε πολύ εξοικειωμένοι με αυτό Πρέπει να το χρησιμοποιούμε καθημερινά για να ξεκινήσουμε γρήγορα και να τερματίσουμε τη λειτουργία του διακομιστή Tomcat. Όσο για το επίθημα bat, εξαρτάται από τον τύπο του λειτουργικού σας συστήματος.

2.1.2 Καταλίνα

σχετικά μεCatalinaΤο αρχείο είναι επίσης από την tomcat启动脚本,καιstartupΗ κύρια διαφορά είναι ότι το τελευταίο专注启动, ενώ το πρώτο μπορεί ακόμα να περάσει配置参数για την επίτευξη άλλων σκοπών·

Για παράδειγμα, εδώ χρησιμοποιώ το catalina για να ξεκινήσω το Tomcat, θα κάνω αυτό: entercatalina.bat start (σύστημα windows)
Εισαγάγετε την περιγραφή της εικόνας εδώ
εδώ είναιtomcat的bin目录Εκτελείται κάτω από, εάν έχετε ρυθμίσει环境变量, τότε μπορείτε να εκτελέσετε αυτή τη λειτουργία σε οποιαδήποτε τοποθεσία, μπορούμε επίσης να χρησιμοποιήσουμεcatalina.bat stopνα σταματήσει το σέρβις?

Πώς λοιπόν να ρυθμίσετε τις παραμέτρους;

Η συνήθης προσέγγιση είναι να διαμορφώνουμε τις σχετικές παραμέτρους τροποποιώντας το αρχείο catalina και η πιο κοινή διαμόρφωση παραμέτρων που χρησιμοποιούμε είναι το JVM και άλλο σχετικό περιεχόμενο, για παράδειγμα, στο αρχείο catalina, εδώ I-Xms512mέχει ήδη ρυθμιστείJVM的初始堆内存είναι 512 MB,-Xmx1024mέχει ήδη ρυθμιστεί最大堆内存είναι 1024MB,-XX:+UseG1GCΕνεργοποιημένοG1垃圾回收器-Duser.timezone=Asia/Shanghaiέχει ήδη ρυθμιστείJVM的时区

Εισαγάγετε την περιγραφή της εικόνας εδώ
Μετά την τροποποίηση, επανεκκινήστε το tomcat για να τεθεί σε ισχύ η διαμόρφωση εδώ είναι μια σύγκριση της διαφοράς πριν και μετά τη διαμόρφωση.
Εισαγάγετε την περιγραφή της εικόνας εδώ
Εισαγάγετε την περιγραφή της εικόνας εδώ
Το πρόγραμμα ξεκινά κανονικά και μπορούμε να δούμε τις πληροφορίες παραμέτρων που ρυθμίσαμε στην κονσόλα.

需要注意的是, σε πραγματικές καταστάσεις δεν το κάνουμε不建议直接在catalina中修改, το οποίο δεν είναι φιλικό για την αναβάθμιση και τη συντήρηση της υπηρεσίας tomcat μας, γι' αυτό προτείνουμε通过setenv配置文件 Για να ρυθμίσετε τις παραμέτρους γιατί setenv; Ας ρίξουμε μια ματιά στο αρχείο διαμόρφωσης του catalina Αυτή η παράγραφος μας λέει ότι το σενάριο θα κάνει μια κρίση όταν υπάρχει αυτό το αρχείο, αυτό το αρχείο συνήθως δεν υπάρχει στον τρέχοντα κατάλογο να δημιουργήσουμε ένα μόνοι μας.
Εισαγάγετε την περιγραφή της εικόνας εδώ
Αφού δημιουργήσετε το setenv (setenv.bat στα Windows, setenv.sh σε mac/linux), προσθέστε διαμορφώσεις σε αυτό σύμφωνα με διαφορετικά συστήματα, σημειώστε ότι η σύνταξη θα είναι ελαφρώς διαφορετική.

// 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)

αρχείο υπηρεσίας, βλέπουμε αυτό το αρχείο μόνο στα Windows, χρησιμοποιείται συνήθως για την εγγραφή της υπηρεσίας Tomcat ως υπηρεσία συστήματος η κύρια χρήση είναι η εισαγωγή του καταλόγου κάδου και η εκτέλεση service.bat install + προσαρμοσμένο όνομα υπηρεσίας.
Εισαγάγετε την περιγραφή της εικόνας εδώ
Εισαγάγετε την περιγραφή της εικόνας εδώ
Στη συνέχεια, μπορούμε να δούμε στην υπηρεσία των Windows ότι δεν έχει ξεκινήσει αυτήν τη στιγμή. Μπορείτε να κάνετε κλικ για να ξεκινήσετε ή να επανεκκινήσετε τον υπολογιστή.

2.2 κατάλογος conf

Ο κατάλογος conf αποθηκεύει διάφορα καθολικά αρχεία διαμόρφωσης του διακομιστή Tomcat.

  • server.xml: Το κύριο αρχείο διαμόρφωσης της Tomcat, συμπεριλαμβανομένων των πληροφοριών διαμόρφωσης του Service, του Connector, του Engine, του Host και άλλων στοιχείων.
  • web.xml: Ένα αρχείο διαμόρφωσης που ακολουθεί το πρότυπο προδιαγραφών Servlet και χρησιμοποιείται για τη διαμόρφωση των servlets και την παροχή προεπιλεγμένων πληροφοριών διαμόρφωσης για όλες τις εφαρμογές web.
  • tomcat-users.xml: Σχετικοί ρόλοι, χρήστες, κωδικοί πρόσβασης και άλλες πληροφορίες που χρησιμοποιούνται στον έλεγχο ταυτότητας Realm.
  • context.xml: Προεπιλεγμένες πληροφορίες διαμόρφωσης για όλους τους κεντρικούς υπολογιστές.
  • catalina.policy: Αρχείο διαμόρφωσης πολιτικής ασφαλείας που σχετίζεται με Java.
  • catalina.properties: Ορισμός εσωτερικού πακέτου Tomcat και αρχεία ελέγχου που σχετίζονται με την πρόσβαση.
  • logging.properties: Πληροφορίες διαμόρφωσης που σχετίζονται με το καταγραφικό Tomcat.

2.2.1 server.xml

Στο αρχείο διαμόρφωσης server.xml του Apache Tomcat, μπορείτε配置多个端口, αλλά τα πιο κοινά από αυτά περιλαμβάνουνHTTP服务的端口(Η προεπιλογή είναι 8080),AJP服务的端口(η προεπιλογή είναι 8009) καιSSL/TLS(即HTTPS)的端口(Εάν είναι ενεργοποιημένο, η προεπιλογή μπορεί να είναι 8443, αλλά αυτό εξαρτάται από τη συγκεκριμένη διαμόρφωση)
Θύρα σύνδεσης 【1】http

Η σύνδεση HTTP χρησιμοποιείται για τη διαχείριση αιτημάτων HTTP που έρχονται στο Tomcat. Από προεπιλογή, το Tomcat ακούει στη θύρα 8080. Μπορείτε να αλλάξετε αυτήν τη θύρα τροποποιώντας το χαρακτηριστικό port της ετικέτας.

Εισαγάγετε την περιγραφή της εικόνας εδώ
【2】Θύρα σύνδεσης AJP

Η σύνδεση AJP (Apache JServ Protocol) χρησιμοποιείται για επικοινωνία μεταξύ του Tomcat και του διακομιστή HTTP Apache, ειδικά όταν χρησιμοποιείται η λειτουργική μονάδα mod_jk. Από προεπιλογή, το Tomcat ακούει στη θύρα 8009.

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

【3】Θύρα σύνδεσης SSL/TLS (HTTPS).

Εάν σκοπεύετε να έχετε την Tomcat να χειρίζεται αιτήματα HTTPS, πρέπει να διαμορφώσετε μια σύνδεση SSL/TLS.Αυτό περιλαμβάνει τον καθορισμό πληροφοριών όπως η αποθήκευση κλειδιών (keystore) και ο κωδικός πρόσβασης του πιστοποιητικού SSL

Εισαγάγετε την περιγραφή της εικόνας εδώ
这个也是默认注释的,当你需要用到https请求的时候,再去开启;certificateKeystoreFile和certificateKeystorePassword应该指向你的密钥库文件和它的密码。这些值需要根据你的实际密钥库文件和密码进行更改

2.2.2 web.xml (λίγο άλλαξε)

Στον κατάλογο εγκατάστασης Tomcatconf目录Μέσηςweb.xml文件Ναί全局配置文件 , το οποίο ορίζει την προεπιλεγμένη αντιστοίχιση τύπων Servlet και MIME σε όλο τον διακομιστή Tomcat, κ.λπ. Συνήθως, αυτό το παγκόσμιο αρχείο web.xml δεν χρειάζεται να τροποποιείται συχνά από προγραμματιστές, εκτός αν χρειάζεται να προσθέσετε καθολική αντιστοίχιση Servlet, φίλτρο (Φίλτρο), ακροατή (Listener) κ.λπ. σε ολόκληρο τον διακομιστή Tomcat.

一些配置是可以通过注解(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 καταγραφή.ιδιοτήτων

Με την επεξεργασία αυτού του αρχείου, μπορείτε να ορίσετε το επίπεδο καταγραφής, τη μορφή, τη θέση εξόδου κ.λπ. Αυτό είναι χρήσιμο για την παρακολούθηση και τον εντοπισμό σφαλμάτων των διακομιστών 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
  • 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 (βασικά αμετάβλητος)

Λειτουργία: Αποθηκεύστε τα αρχεία βιβλιοθήκης (αρχεία JAR) που απαιτούνται για την εκτέλεση του Tomcat.
Σημείωση: Παρόλο που ορισμένες παλιές εκδόσεις του Tomcat ή συγκεκριμένες διαμορφώσεις ενδέχεται να αποθηκεύουν αρχεία JAR σε άλλους καταλόγους, όπως common/lib, server/lib ή shared/lib, οι σύγχρονες εκδόσεις του Tomcat προτιμούν να αποθηκεύουν αρχεία της βασικής βιβλιοθήκης στον κατάλογο lib.

2.4 κατάλογος αρχείων καταγραφής

Λειτουργία: Αποθηκεύστε τα αρχεία καταγραφής όταν εκτελείται το 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, κ.λπ.

2.5 κατάλογος webapps

Λειτουργία: Ο κύριος κατάλογος δημοσίευσης Ιστού της Tomcat, που χρησιμοποιείται για την αποθήκευση εφαρμογών Ιστού.
Περιεχόμενο: Από προεπιλογή, η εφαρμογή μπορεί να δημοσιευθεί τοποθετώντας τα αρχεία εφαρμογής web σε αυτόν τον κατάλογο. Η Tomcat θα σαρώσει αυτόματα τις εφαρμογές σε αυτόν τον κατάλογο και θα τις αναπτύξει.

Τα χαρακτηριστικά των webapps είναι:
【1】Αυτόματη ανάπτυξη: Το Tomcat θα σαρώνει τακτικά όλα τα περιεχόμενα στον κατάλογο webapps.όταν τοποθετείτε α WAR 文件(για παράδειγμα, myapp.war) όταν τοποθετηθεί στον κατάλογο webapps, το Tomcat θα εντοπίσει αυτόματα αυτό το αρχείο και尝试部署它 .Εάν το αρχείο είναι πακέτο WAR, η Tomcat θα αποσυμπιέσει πρώτα το αρχείο και στη συνέχεια θα αναπτύξει την εφαρμογή σύμφωνα με τη δομή του αποσυμπιεσμένου καταλόγου.
【2】Διαχείριση: Με απευθείας λειτουργία των αρχείων στον κατάλογο webapps, μπορείτε να διαχειριστείτε εύκολα εφαρμογές Web στο 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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

2.6 κατάλογος εργασίας

Λειτουργία: Αποθηκεύστε τα αρχεία κλάσης που δημιουργήθηκαν μετά τη μεταγλώττιση του JSP και τα προσωρινά αρχεία του Servlet.
Σημείωση: Διαγράψτε τα περιεχόμενα αυτού του καταλόγου και επανεκκινήστε το Tomcat για να διαγράψετε τη μεταγλωττισμένη κρυφή μνήμη του JSP και του Servlet.

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

Κατάλογος 2.7 temp

Λειτουργία: Αποθηκεύστε προσωρινά αρχεία που δημιουργήθηκαν κατά την εκτέλεση του Tomcat.
Σημείωση: Αυτά τα προσωρινά αρχεία χρησιμοποιούνται συνήθως για την υποστήριξη εσωτερικών λειτουργιών του Tomcat, όπως διαχείριση περιόδου λειτουργίας, μεταφόρτωση αρχείων κ.λπ.

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

3. Τέλος

[1] Αφού κάνετε τις σχετικές διαμορφώσεις, συχνά χρειάζεται να κάνετε επανεκκίνηση του Tomcat για να τεθεί σε ισχύ.

[2] Αν και οι κατάλογοι temp και work είναι αρχεία κρυφής μνήμης και προσωρινά αρχεία, πρέπει να δημιουργήσετε αντίγραφα ασφαλείας κατά την εκκαθάρισή τους και να επιβεβαιώσετε εάν αυτά τα αρχεία εξακολουθούν να είναι κατειλημμένα από άλλες διαδικασίες εφαρμογής.

[3] Όταν εκτελείται ο τερματισμός λειτουργίας, δεν σταματάει αμέσως, αλλά προσπαθεί να τερματίσει τη λειτουργία του Tomcat με χάρη ;