柚子快報(bào)激活碼778899分享:前端 【Tomcat】
柚子快報(bào)激活碼778899分享:前端 【Tomcat】
Tomcat 簡(jiǎn)介
Tomcat官網(wǎng): http://tomcat.apache.org
Tomcat是Apache軟件基金會(huì)(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun和其他一些公司及個(gè)人共同開(kāi)發(fā)而成。并且Tomcat服務(wù)器是一個(gè)免費(fèi)的開(kāi)放源代碼的Web應(yīng)用服務(wù)器,屬于輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶(hù)不是很多的場(chǎng)合下被普遍使用,是開(kāi)發(fā)和調(diào)試JSP程序的首選。
Tomcat:JAVA容器,WEB容器,WEB中間件
Tomcat 端口說(shuō)明
1. HTTP端口(默認(rèn)端口號(hào)為8080):
- HTTP端口是用于處理HTTP請(qǐng)求的端口。當(dāng)瀏覽器發(fā)送HTTP請(qǐng)求時(shí),會(huì)使用這個(gè)端口與Tomcat服務(wù)器通信。
- 默認(rèn)情況下,Tomcat監(jiān)聽(tīng)8080端口,可以通過(guò)在server.xml配置文件中的
2. HTTPS端口(默認(rèn)端口號(hào)為8443):【用咋不】
- HTTPS端口是用于處理HTTPS請(qǐng)求的端口。HTTPS是HTTP的安全版本,通過(guò)SSL/TLS加密傳輸數(shù)據(jù)。
- 默認(rèn)情況下,Tomcat監(jiān)聽(tīng)8443端口,可以通過(guò)在server.xml配置文件中的
3. AJP端口(默認(rèn)端口號(hào)為8009):
- AJP(Apache JServ Protocol)端口是用于與Apache HTTP服務(wù)器之間進(jìn)行通信的端口。ajp協(xié)議。
- 默認(rèn)情況下,Tomcat監(jiān)聽(tīng)8009端口,可以通過(guò)在server.xml配置文件中的
4. Shutdown端口(默認(rèn)端口號(hào)為8005):
- Shutdown端口用于接收關(guān)閉Tomcat服務(wù)器的命令。當(dāng)管理員想要停止Tomcat服務(wù)器時(shí),可以通過(guò)連接到這個(gè)端口發(fā)送關(guān)閉命令。
- 默認(rèn)情況下,Tomcat監(jiān)聽(tīng)8005端口,可以通過(guò)在server.xml配置文件中的
使用方法:
Nginx+Tomcat //反向代理和負(fù)載均衡 ;nginx處理靜態(tài)請(qǐng)求,tomcat處理動(dòng)態(tài)請(qǐng)求
Tomcat的安裝
1.環(huán)境部署:
安裝時(shí)候選擇tomcat軟件版本要與程序開(kāi)發(fā)使用的版本一致。jdk版本要進(jìn)行與tomcat保持一致。
1. 查看系統(tǒng)版本
cat /etc/redhat-release
2. 關(guān)閉防火墻
setenforce 0
systemctl disable --now firewalld
3. 安裝JDK1.8環(huán)境
# 解壓 jdk 壓縮包到 /usr/local/
tar xzf jdk-8u211-linux-x64.tar.gz -C /usr/local/
# 改名:
mv /usr/local/jdk1.8.0_211/ /usr/local/java
# java加入環(huán)境變量:
vim /etc/profile.d/jdk.sh
# 添加:
#!/bin/
export JAVA_HOME=/usr/local/java/ #指定java安裝目錄
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH #用于指定java系統(tǒng)查找命令的路徑
4. 加載變量
source /etc/profile.d/jdk.sh
5.驗(yàn)證
java -version
注意:在圖形化操作系統(tǒng),可能會(huì)出現(xiàn)網(wǎng)頁(yè)無(wú)法打開(kāi)情況,原因是PATH自帶JDK。需要把PATH放到j(luò)dk1.8.0_211/bin后面,讓系統(tǒng)優(yōu)先搜索自己下載的JDK。
2.Tomcat安裝
版本:apache-tomcat-8.5.45.tar.gz
1. 解壓Tomcat安裝包到指定目錄
tar xfv apache-tomcat-8.5.45.tar.gz -C /usr/local
# 改名:
mv /usr/local/apache-tomcat-8.5.45/ /usr/local/tomcat
2. tomcat添加到環(huán)境變量:
vim /etc/profile.d/tomcat.sh
# 添加:
#!/bin/bash
export TOMCAT_HOME=/usr/local/tomcat/bin
export PATH=$PATH:$TOMCAT_HOME:$JAVA_HOME/bin
3. 重新加載配置文件
source /etc/profile.d/tomcat.sh
4. 查看tomcat是否安裝成功
catalina.sh version
catalina.sh start
ss -tunlp | grep java
8005: TOMCAT本身的端口
8080: TOMCAT負(fù)責(zé)建立HTTP連接,在通過(guò)瀏覽器訪問(wèn)TOMCAT服務(wù)器的Web應(yīng)用時(shí),使用的就是這個(gè)連接器
8009: TOMCAT負(fù)責(zé)和其他的HTTP服務(wù)器建立連接,如nginx和apache互通時(shí)使用
Using CATALINA_BASE: /usr/local/tomcat # 表示Tomcat實(shí)例的基礎(chǔ)目錄,即配置文件、日志文件等所在的目錄路徑。
Using CATALINA_HOME: /usr/local/tomcat # 表示Tomcat的安裝目錄,即Tomcat的主要程序文件所在的目錄路徑。
Using CATALINA_TMPDIR: /usr/local/tomcat/temp # 表示Tomcat的臨時(shí)目錄,用于存放臨時(shí)文件和數(shù)據(jù),比如會(huì)話數(shù)據(jù)、上傳文件等。
Using JRE_HOME: /usr/local/java # 表示Java運(yùn)行時(shí)環(huán)境(JRE)的安裝目錄,即Java解釋器和標(biāo)準(zhǔn)類(lèi)庫(kù)所在的目錄路徑。
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar # 表示Java類(lèi)路徑(CLASSPATH),用于指定Java程序運(yùn)行時(shí)要加載的類(lèi)庫(kù)和目錄。在這里指定了兩個(gè)JAR文件,分別是bootstrap.jar和tomcat-juli.jar,這些JAR文件包含了Tomcat啟動(dòng)和日志相關(guān)的類(lèi)。
Server version: Apache Tomcat/8.5.45 # 表示Tomcat服務(wù)器的版本信息,這里是Tomcat 8.5.45。
Server built: Aug 14 2019 22:21:25 UTC # 表示Tomcat服務(wù)器的構(gòu)建時(shí)間,即Tomcat程序文件的編譯時(shí)間。
Server number: 8.5.45.0 # 表示Tomcat服務(wù)器的具體版本號(hào)。
OS Name: Linux # 表示操作系統(tǒng)的名稱(chēng),這里是Linux。
OS Version: 3.10.0-1160.el7.x86_64 # 表示操作系統(tǒng)的版本號(hào)。
Architecture: amd64 # 表示操作系統(tǒng)的體系結(jié)構(gòu),這里是64位的。
JVM Version: 1.8.0_211-b12 # 表示Java虛擬機(jī)(JVM)的版本信息。
JVM Vendor: Oracle Corporation # 表示Java虛擬機(jī)(JVM)的提供商,這里是Oracle Corporation。
3.Tomcat主目錄介紹(/tomcat/)
cd /usr/local/tomcat
yum install -y tree
tree -L 1
├── bin # 包含了Tomcat服務(wù)器的可執(zhí)行文件,如啟動(dòng)和關(guān)閉腳本、管理腳本等。
├── BUILDING.txt # 包含了關(guān)于如何構(gòu)建Tomcat服務(wù)器的說(shuō)明文檔。
├── conf # 包含了Tomcat服務(wù)器的配置文件,如服務(wù)器配置、日志配置、Web應(yīng)用程序配置等。
├── CONTRIBUTING.md # 包含了關(guān)于如何向Tomcat項(xiàng)目貢獻(xiàn)代碼的說(shuō)明文檔。
├── lib # 包含了Tomcat服務(wù)器運(yùn)行所需的Java類(lèi)庫(kù)文件。
├── LICENSE # 包含了Tomcat服務(wù)器的許可證文件。
├── logs # 包含了Tomcat服務(wù)器的日志文件,記錄了服務(wù)器的運(yùn)行狀態(tài)和事件信息。
├── NOTICE # 包含了關(guān)于Tomcat服務(wù)器的版權(quán)和許可信息的通知文件。
├── README.md # 包含了Tomcat服務(wù)器的簡(jiǎn)要說(shuō)明文檔。
├── RELEASE-NOTES # 包含了Tomcat服務(wù)器的發(fā)布說(shuō)明文檔,記錄了每個(gè)版本的更新內(nèi)容和改進(jìn)。
├── RUNNING.txt # 包含了關(guān)于如何運(yùn)行Tomcat服務(wù)器的說(shuō)明文檔。
├── temp # 用于存放Tomcat服務(wù)器的臨時(shí)文件,如會(huì)話數(shù)據(jù)、上傳文件等。
├── webapps # 用于存放Web應(yīng)用程序的目錄,每個(gè)子目錄代表一個(gè)獨(dú)立的Web應(yīng)用程序
└── work # 用于存放Tomcat服務(wù)器的工作目錄,如編譯的JSP文件、臨時(shí)緩存等。
4.webapps目錄介紹(/tomcat/webapps)
cd /usr/local/tomcat/webapps/
tree -L 1
├── docs # 包含了Tomcat服務(wù)器的文檔和示例文件,如用戶(hù)手冊(cè)、API文檔等。
├── examples # 包含了Tomcat服務(wù)器的示例應(yīng)用程序,提供了一些簡(jiǎn)單的示例代碼和演示。
├── host-manager # 包含了Tomcat的主機(jī)管理應(yīng)用程序,允許管理員通過(guò)Web界面管理虛擬主機(jī)。
├── manager # 包含了Tomcat的應(yīng)用程序管理應(yīng)用程序,允許管理員通過(guò)Web界面管理部署在Tomcat上的Web應(yīng)用程序
└── ROOT # 是Tomcat服務(wù)器的默認(rèn)根應(yīng)用程序(也稱(chēng)為ROOT應(yīng)用程序),即當(dāng)用戶(hù)訪問(wèn)Tomcat服務(wù)器時(shí)默認(rèn)會(huì)加載的應(yīng)用程序。通常用于展示Tomcat服務(wù)器的歡迎頁(yè)面或其他默認(rèn)內(nèi)容。
5.配置文件目錄介紹(/tomcat/conf)
cd /usr/local/tomcat/conf/
tree -L 1
├── Catalina # s這個(gè)目錄包含 Tomcat 的日志文件和工作目錄
├── catalina.policy # Tomcat服務(wù)器的安全策略文件,用于定義安全策略和權(quán)限控制。
├── catalina.properties # Tomcat服務(wù)器的全局配置文件,包含了一些Tomcat服務(wù)器的運(yùn)行參數(shù)和屬性設(shè)置。
├── context.xml # Tomcat服務(wù)器的Web應(yīng)用上下文配置文件,用于配置特定Web應(yīng)用程序的上下文參數(shù)和資源定義。
├── jaspic-providers.xml# 配置了 Java 安全認(rèn)證和授權(quán)的提供者
├── jaspic-providers.xsd# jaspic-providers.xml 的 XML Schema 定義文件
├── logging.properties # Tomcat服務(wù)器的日志配置文件,用于配置日志記錄器、日志格式和輸出目的地等。
├── server.xml # Tomcat服務(wù)器的主配置文件,包含了服務(wù)器的核心配置,如端口設(shè)置、連接器配置、虛擬主機(jī)設(shè)置等。`
├── tomcat-users.xml # Tomcat服務(wù)器的用戶(hù)認(rèn)證配置文件,用于定義Tomcat服務(wù)器的用戶(hù)、角色和訪問(wèn)權(quán)限。
├── tomcat-users.xsd # tomcat-users.xml 的 XML Schema 定義文件,用于驗(yàn)證Tomcat用戶(hù)認(rèn)證配置文件的結(jié)構(gòu)和語(yǔ)法。
└── web.xml # 定義的Web應(yīng)用程序配置文件,包含了Web應(yīng)用程序的部署描述符,用于配置Servlet、過(guò)濾器、監(jiān)聽(tīng)器等組件。
6.開(kāi)啟/關(guān)閉Tomcat
1. 啟動(dòng)Tomcat
catalina.sh start
2. 關(guān)閉Tomcat
catalina.sh stop
3. 檢查
ss -tunlp |grep java
注意:tomcat未啟動(dòng)的情況下使用shutdown腳本,會(huì)有大量的輸出信息
啟動(dòng)完成瀏覽器進(jìn)行訪問(wèn)
IP:8080
Tomcat主配置文件詳解
server.xml 詳解
頂級(jí)組件:位于整個(gè)配置的頂層,如server。容器類(lèi)組件:包含其它組件的組件,如service、engine、host、context。連接器組件:連接用戶(hù)請(qǐng)求至tomcat,如connector(引擎)。
vim /usr/local/tomcat/conf/server.xml
第一行:xml版本信息,字符集第二行:port="8005":服務(wù)器監(jiān)聽(tīng)關(guān)閉命令的端口。shutdown="SHUTDOWN":關(guān)閉服務(wù)器的命令字符串。第三至七行:記錄Tomcat的版本信息。
type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> 第一行:Resource:配置一個(gè)全局的JNDI資源,這里定義了一個(gè)用戶(hù)數(shù)據(jù)庫(kù)資源第二行:name="UserDatabase":資源名稱(chēng)。auth="Container":認(rèn)證方式為容器管理。第三行:type="org.apache.catalina.UserDatabase":資源類(lèi)型。第四行:description:資源描述。 connectionTimeout="20000" redirectPort="8443" /> resourceName="UserDatabase"/> unpackWARs="true" autoDeploy="true"> prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> 第1行: name="Catalina":服務(wù)名稱(chēng)。 第3到5行: port="8080":HTTP連接器監(jiān)聽(tīng)的端口。protocol="HTTP/1.1":使用的協(xié)議。connectionTimeout="20000":連接超時(shí)時(shí)間,單位為毫秒。redirectPort="8443":當(dāng)需要SSL時(shí)的重定向端口。 第7行: Connector (AJP/1.3):port="8009":AJP連接器監(jiān)聽(tīng)的端口。protocol="AJP/1.3":使用的協(xié)議。redirectPort="8443":當(dāng)需要SSL時(shí)的重定向端口。 第9行: name="Catalina":引擎名稱(chēng)。defaultHost="localhost":默認(rèn)的主機(jī)名。 第11到14行: LockOutRealm:提供對(duì)多次失敗的登錄嘗試進(jìn)行鎖定的功。UserDatabaseRealm:使用定義在UserDatabase資源中的用戶(hù)數(shù)據(jù)庫(kù)進(jìn)行認(rèn)證。 第16行至17行: Host : 虛擬主機(jī)name="localhost":主機(jī)名。appBase="webapps":Web應(yīng)用的基礎(chǔ)目錄。相對(duì)路徑相對(duì)于CATALINA_HOME(/usr/local/tomcat)而言的,也可以寫(xiě)絕對(duì)路徑。unpackWARs="true":是否自動(dòng)解壓WAR文件。autoDeploy="true":是否自動(dòng)部署應(yīng)用。 第19行至21行: directory="logs":日志文件存放的目錄。prefix="localhost_access_log":日志文件的前綴。suffix=".txt":日志文件的后綴。pattern="%h %l %u %t "%r" %s %b":日志的記錄格式。 type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> connectionTimeout="20000" redirectPort="8443" /> resourceName="UserDatabase"/> unpackWARs="true" autoDeploy="true"> prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> Tomcat反向代理集群(nginx實(shí)現(xiàn)負(fù)載均衡) 安裝nginx:關(guān)閉防火墻和selinux cd /etc/yum.repos.d/ && vim nginx.repo # 寫(xiě)入: [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1 # yum -y install yum-utils nginx # 備份原配置文件并修改 cd /etc/nginx/conf.d/ cp default.conf default.conf.back mv default.conf tomcat.conf vim tomcat.conf # upstream testweb { server 192.168.137.152:8080 weight=1 max_fails=1 fail_timeout=2s; server 192.168.137.152:8082 weight=1 max_fails=1 fail_timeout=2s; } server { listen 80; server_name localhost; access_log /var/log/nginx/proxy.access.log main; location / { proxy_pass http://testweb; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } 上游(upstream)服務(wù)器組的Nginx配置塊,通常用于負(fù)載均衡設(shè)置/故障轉(zhuǎn)移 upstream testweb: 定義一個(gè)名為 testweb 的新的上游服務(wù)器組;IP地址為 192.168.50.114;端口為 8081;weight=1 表示這個(gè)服務(wù)器的權(quán)重是1;max_fails=1 表示允許連接失敗的最大次數(shù)為1,超過(guò)這個(gè)次數(shù)后,Nginx會(huì)認(rèn)為該服務(wù)器不可用;fail_timeout=2s 表示如果服務(wù)器失敗,Nginx會(huì)在2秒后再次嘗試連接; server塊的部分配置: listen 80 Nginx監(jiān)聽(tīng)80端口,HTTP協(xié)議的默認(rèn)端口server_name localhost 服務(wù)器名:localhost。當(dāng)請(qǐng)求的Host頭部與這個(gè)值匹配時(shí),Nginx將使用這個(gè)server塊來(lái)處理請(qǐng)求。通常,生產(chǎn)環(huán)境中的服務(wù)器名會(huì)設(shè)置為網(wǎng)站的域名。access_log /var/log/nginx/proxy.access.log main 訪問(wèn)日志的路徑和日志格式。server_name域名或IP地址。多個(gè)域名在同一個(gè)server塊中使用server_name指令多次,列出所有域名。access_log指令可以多次出現(xiàn),為不同的location塊指定不同的日志文件或日志格式。 location塊:定義了當(dāng)請(qǐng)求匹配/(即網(wǎng)站的根路徑)時(shí)Nginx的行為 location / { ... } : 定義了一個(gè)location塊,它匹配所有對(duì)網(wǎng)站根URL的請(qǐng)求。proxy_pass http://testweb :將請(qǐng)求代理(轉(zhuǎn)發(fā))到之前定義的testweb上游服務(wù)器組。所有匹配該location的請(qǐng)求都會(huì)根據(jù)testweb的配置分發(fā)到相應(yīng)的后端服務(wù)器。proxy_set_header Host $host:$server_port :設(shè)置了代理請(qǐng)求的Host頭:主機(jī)名和端口。$host變量獲取請(qǐng)求中的主機(jī)名,$server_port變量獲取處理請(qǐng)求的服務(wù)器的端口號(hào)。proxy_set_header X-Real-IP $remote_addr :設(shè)置一個(gè)自定義的響應(yīng)頭X-Real-IP,其值為發(fā)起請(qǐng)求的客戶(hù)端IP地址,這有助于識(shí)別真實(shí)的客戶(hù)端IP,特別是在使用了HTTP代理或負(fù)載均衡器的情況下。proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for :設(shè)置X-Forwarded-For頭,用于標(biāo)識(shí)原始請(qǐng)求的客戶(hù)端以及經(jīng)過(guò)的代理列表。如果請(qǐng)求已經(jīng)包含了X-Forwarded-For頭,$proxy_add_x_forwarded_for變量會(huì)將原始值與$remote_addr(當(dāng)前請(qǐng)求的IP)合并,而不是替換它。 // error_page 當(dāng)服務(wù)器遇到HTTP 500、502、503或504錯(cuò)誤時(shí),應(yīng)將請(qǐng)求重定向到 /50x.htmllocation = /50x.html {...} 當(dāng) /50x.html 路徑被請(qǐng)求時(shí),Nginx將執(zhí)行這個(gè)塊內(nèi)的指令root /usr/share/nginx/html 定義的/50x.html文件的根目錄。Nginx將在/usr/share/nginx/html目錄下查找50x.html文件 若 tomcat沒(méi)打開(kāi):如圖 # 打開(kāi)tomcat: /usr/local/tomcat/bin/startup.sh /usr/local/tomcat_2/bin/startup.sh # 反復(fù)刷新可以看到頁(yè)面下方的端口號(hào)在更變 ? ? Tomcat相關(guān)調(diào)優(yōu) 日志格式配置 vim /usr/local/tomcat/conf/server.xml # 用于設(shè)置訪問(wèn)日志的行為 prefix="jenkins-" suffix="-access_log" pattern="%{X-Real-IP}i - %v %t "%r" - %s %b %T "%{Referer}i" "%{User-Agent}i" %a "-" "-"" /> %{X-Real-IP}i :記錄X-Real-IP請(qǐng)求頭的值,通常用于記錄經(jīng)過(guò)代理或負(fù)載均衡器的真實(shí)客戶(hù)端IP地址。 "%{Referer}i" :記錄Referer請(qǐng)求頭,指明請(qǐng)求的來(lái)源頁(yè)面。 "%{User-Agent}i" :記錄User-Agent請(qǐng)求頭,提供客戶(hù)端瀏覽器的信息。 日志參數(shù)解釋?zhuān)?/p> %a - 遠(yuǎn)程IP地址 %A - 本地IP地址 %b - 發(fā)送的字節(jié)數(shù),不包括HTTP頭,或“ - ”如果沒(méi)有發(fā)送字節(jié) %B - 發(fā)送的字節(jié)數(shù),不包括HTTP頭 %h - 遠(yuǎn)程主機(jī)名 %H - 請(qǐng)求協(xié)議 %l (小寫(xiě)的L)- 遠(yuǎn)程邏輯從identd的用戶(hù)名(總是返回' - ') %m - 請(qǐng)求方法 %p - 本地端口 %q - 查詢(xún)字符串(在前面加上一個(gè)“?”如果它存在,否則是一個(gè)空字符串 %r - 第一行的要求,客戶(hù)端請(qǐng)求的第一行,包括HTTP方法、請(qǐng)求URL和協(xié)議版本。例如:"GET /example.html HTTP/1.1"。 %s - 響應(yīng)的HTTP狀態(tài)代碼 %S - 用戶(hù)會(huì)話ID %t - 日期和時(shí)間,在通用日志格式,使用指定格式(例如 %t{dd/MMM/yyyy:HH:mm:ss Z}) %u - 遠(yuǎn)程用戶(hù)身份驗(yàn)證 %U - 請(qǐng)求的URL路徑 %v - 本地服務(wù)器名 %D - 處理請(qǐng)求的時(shí)間(以毫秒為單位) %T - 處理請(qǐng)求的時(shí)間(以秒為單位) %I (大寫(xiě)的i) - 當(dāng)前請(qǐng)求的線程名稱(chēng) JVM 參數(shù)優(yōu)化 cp /usr/local/tomcat/bin/catalina.sh /usr/local/tomcat/bin/catalina.sh.back vim /usr/local/tomcat/bin/catalina.sh # JAVA_OPTS="$JAVA_OPTS -Xms1024m -Xmx1024m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m" #jdk1.8 這條代碼是用于設(shè)置Java虛擬機(jī)(JVM)的啟動(dòng)參數(shù): JAVA_OPTS="$JAVA_OPTS -Xms1024m -Xmx1024m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m" 首先將 JAVA_OPTS 環(huán)境變量的值設(shè)置為其當(dāng)前值(如果有的話),然后添加了一系列JVM啟動(dòng)參數(shù): -Xms1024m: 指定JVM的初始堆內(nèi)存大小為1024 MB。-Xmx1024m: 指定JVM的最大堆內(nèi)存大小為1024 MB。-XX:MetaspaceSize=512m: 指定元數(shù)據(jù)空間(Metaspace)的初始大小為512 MB。元數(shù)據(jù)空間用于存儲(chǔ)類(lèi)的元數(shù)據(jù)信息。-XX:MaxMetaspaceSize=512m: 指定元數(shù)據(jù)空間的最大大小為512 MB。 開(kāi)啟GC日志 vim /usr/local/tomcat/bin/catalina.sh # JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/data/logs/gc-%t.log" 這條代碼是用于設(shè)置Java虛擬機(jī)(JVM)的啟動(dòng)參數(shù),主要是用于配置垃圾回收(GC)日志輸出: 首先將 JAVA_OPTS 環(huán)境變量的值設(shè)置為其當(dāng)前值(如果有的話),然后添加了一系列JVM啟動(dòng)參數(shù): XX:+PrintGCDetails: 啟用GC日志詳細(xì)輸出,包括每次GC事件的詳細(xì)信息,如GC類(lèi)型、GC前后堆內(nèi)存情況等。XX:+PrintGCDateStamps: 啟用GC日志輸出時(shí)間戳,每條GC日志輸出的前綴將包含日期和時(shí)間信息。Xloggc:/data/logs/gc-%t.log: 指定GC日志文件的輸出路徑和文件名格式。/data/logs/gc-%t.log 中的 %t 將會(huì)被替換為當(dāng)前日期時(shí)間的時(shí)間戳。 開(kāi)啟JMX端口便于監(jiān)控 vim /usr/local/tomcat/bin/catalina.sh # CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=10028 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=java69-matrix.zeus.lianjia.com" 這條代碼是用于配置 Tomcat 服務(wù)器的啟動(dòng)參數(shù),具體解釋如下: Dcom.sun.management.jmxremote:?jiǎn)⒂?JMX(Java Management Extensions)遠(yuǎn)程管理功能。允許外部監(jiān)控程序(如JConsole或VisualVM)連接到Tomcat服務(wù)器并監(jiān)視其狀態(tài)和性能。Dcom.sun.management.jmxremote.port=10028:指定 JMX 遠(yuǎn)程管理的端口 10028。監(jiān)控程序?qū)⑹褂迷摱丝谶B接到Tomcat服務(wù)器。Dcom.sun.management.jmxremote.authenticate=false:禁用JMX遠(yuǎn)程管理的認(rèn)證功能,允許任何可以連接到服務(wù)器的客戶(hù)端都可以進(jìn)行JMX操作。Dcom.sun.management.jmxremote.ssl=false:禁用JMX遠(yuǎn)程管理的SSL安全傳輸,以簡(jiǎn)化連接配置。在此配置下,連接不會(huì)通過(guò)SSL進(jìn)行加密。Djava.rmi.server.hostname=java69-matrix.zeus.lianjia.com:指定 RMI(Remote Method Invocation)服務(wù)器的主機(jī)名或IP地址。在JMX遠(yuǎn)程管理中,這將用于通知監(jiān)控程序Tomcat服務(wù)器的位置。 取消JVM 的默認(rèn)DNS緩存時(shí)間 不緩存DNS記錄,避免DNS解析更改后要重啟JVM虛擬機(jī) vim /usr/local/tomcat/bin/catalina.sh # 添加 CATALINA_OPTS="$CATALINA_OPTS -Dsun.net.inetaddr.ttl=0 -Dsun.net.inetaddr.negative.ttl=0 Dsun.net.inetaddr.ttl=0:這個(gè)系統(tǒng)屬性設(shè)置了網(wǎng)絡(luò)地址(InetAddress)的生存時(shí)間(TTL,Time-To-Live)為0。TTL用于指定網(wǎng)絡(luò)數(shù)據(jù)包在網(wǎng)絡(luò)中允許存在的時(shí)間。將TTL設(shè)置為0意味著數(shù)據(jù)包一旦到達(dá)目的地,即被丟棄,不會(huì)被路由到其他節(jié)點(diǎn)。網(wǎng)絡(luò)地址的生存時(shí)間被設(shè)置為盡可能短,可以避免一些不必要的網(wǎng)絡(luò)傳輸。Dsun.net.inetaddr.negative.ttl=0:這個(gè)系統(tǒng)屬性設(shè)置了負(fù)緩存的生存時(shí)間為0。負(fù)緩存用于緩存DNS查詢(xún)的失敗結(jié)果,以避免頻繁地重新查詢(xún)。將負(fù)緩存的生存時(shí)間設(shè)置為0意味著失敗的DNS查詢(xún)結(jié)果不會(huì)被緩存,每次查詢(xún)都會(huì)重新進(jìn)行。這可以確保Tomcat服務(wù)器及時(shí)獲取到最新的DNS解析結(jié)果,而不會(huì)受到舊緩存的影響。 ? 柚子快報(bào)激活碼778899分享:前端 【Tomcat】 精彩鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。