Tomcat簡介、服務部署、虛擬主機配置及相關組態檔引數優化
- 一、Tomcat 簡介
- 核心的組件
- 二、Tomcat 服務部署安裝
- 1、關閉防火墻,將安裝 Tomcat 所需軟體包傳到/opt目錄下
- 2、安裝JDK
- 3、設定JDK環境變數
- 4、安裝啟動Tomcat
- 5、優化tomcat啟動速度
- 三、Tomcat虛擬主機配置
- 1、創建 ljm 和 lucien 專案目錄和檔案
- 2、修改 Tomcat 主組態檔
- 3、客戶端瀏覽器訪問驗證
- 四、Tomcat 優化
- 常用優化相關引數
一、Tomcat 簡介
- Tomcat是Java語言開發的,Tomcat服務器是一個免費的開放源代碼的Web應用服務器,是Apache軟體基金會的Jakarta專案中的一個核心專案,由Apache、Sun和其他一些公司及個人共同開發而成,
- Tomcat屬于輕量級應用服務器,在中小型系統和并發訪問用戶不是很多的場合下被普遍使用,是開發和除錯JSP程式的首選,
- 一般來說,Tomcat雖然和Apache或者Nginx這些Web服務器一樣,具有處理HTML頁面的功能,然而由于其處理靜態HTML的能力遠不及Apache或者Nginx,所以Tomcat通常是作為一個Servlet和JSP容器,單獨運行在后端,
核心的組件
- Web 容器:完成 Web 服務器的功能
- Servlet 容器:名字為 catalina,用于處理 Servlet 代碼
- Java Servlet 是運行在 Web 服務器或應用服務器上的程式,它是作為來自 Web 瀏覽器或其他 HTTP 客戶端的請求和 HTTP 服務器上的資料庫或應用程式之間的中間層,
- 使用Servlet,可以收集來自網頁表單的用戶輸入,呈現來自資料庫或者其他源的記錄,還可以動態創建網頁,與CGI(公共網關介面)功能相類似
- JSP 容器:用于將 JSP 動態網頁翻譯成 Servlet 代碼
- JSP全稱Java Server Pages, 是一種動態網頁開發技術,它使用JSP標簽在HTML網頁中插入Java代碼,標簽通常以<%開頭以%>結束,
- JSP是一種Java servlet,主要用于實作Java web應用程式的用戶界面部分, JSP通過網頁表單獲取用戶輸入資料、訪問資料庫及其他資料源,然后動態地創建網頁,
二、Tomcat 服務部署安裝
1、關閉防火墻,將安裝 Tomcat 所需軟體包傳到/opt目錄下

2、安裝JDK
cd /opt
rpm -qpl jdk-8u201-linux-x64.rpm
rpm -ivh jdk-8u201-linux-x64.rpm
java -version

3、設定JDK環境變數
vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile.d/java.sh
java -version


-----------------------小知識-----------------------
CLASSPATH:編譯、運行Java程式時,JRE會去該變數指定的路徑中搜索所需的類(.class)檔案,
dt.jar:是關于運行環境的類別庫,主要是可視化的 swing 的包,
tools.jar:主要是一些jdk工具的類別庫,包括javac、java、javap(jdk自帶的一個反編譯工具)、javadoc等,
JDK :java development kit (java開發工具)
JRE :java runtime environment (java運行時環境)
JVM :java virtuak machine (java虛擬機),使java程式可以在多種平臺上運行class檔案,


首先使用文本工具撰寫java源代碼,比如 Hello.java ;
在命令列中,輸入命令:javac Hello.java,對源代碼進行編譯,生成 class 位元組碼檔案;
編譯完成后,如果沒有報錯資訊,輸入命令:java Hello,運行 class 位元組碼檔案,由 JVM 對位元組碼進行解釋和運行,列印 “Hello World”,
#類名、介面名命令:英文大小寫字母、數字字符、$和_,不能使用關鍵字和數字開頭;
一個單詞命名時第一個單詞的首字母要大寫;多單詞組成時,所有單詞的首字母大寫:XxxYyyZzz(大駝峰命名法)
4、安裝啟動Tomcat
cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16 /usr/local/tomcat
##啟動tomcat ##
#后臺啟動
/usr/local/tomcat/bin/startup.sh
或
/usr/local/tomcat/bin/catalina.sh start
#前臺啟動
/usr/local/tomcat/bin/catalina.sh run
netstat -natp | grep 8080
瀏覽器訪問Tomcat的默認主頁 http://192.168.184.70:8080


5、優化tomcat啟動速度
第一次啟動tomcat可能會發現 Tomcat 啟動很慢,默認情況下可能會需要幾十秒,可以修改jdk引數進行改,
vim /usr/java/jdk1.8.0_201-amd64/jre/lib/security/java.security
--117行--修改
securerandom.source=file:/dev/urandom
-------------說明------------------------------------------------------------------
/dev/urandom是/dev/random的非阻塞版本,即當熵池中沒有可取的亂數時,讀取/dev/urandom設備仍然會回傳一個亂數,只是該亂數的安全性理論上不高,如果應用對安全性要求很高,那么應該使用/dev/random,
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
ll /usr/local/tomcat/
------主要目錄說明---------------------
bin :存放啟動和關閉 Tomcat 的腳本檔案,比較常用的是 catalina.sh、startup.sh、shutdown.sh 三個檔案
conf :存放 Tomcat 服務器的各種組態檔,比較常用的是 server.xml、context.xml、tomcat-users.xml、web.xml 四個檔案,
lib :存放 Tomcat 服務器的 jar 包,一般不作任何改動,除非連接第三方服務,比如 redis,那就需要添加相對應的 jar 包
logs :存放 Tomcat 日志
temp :存放 Tomcat 運行時產生的檔案
webapps :存放專案資源的目錄
work :Tomcat 作業目錄,一般清除 Tomcat 快取的時候會使用到
三、Tomcat虛擬主機配置
- 很多時候公司會有多個專案需要運行,那么肯定不可能是一臺服務器上運行多個Tomcat服務,這樣會消耗太多的系統資源,此時,就需要使用到 Tomcat 虛擬主機,例如現在新增兩個域名 www.ljm.com 和 www.lucien.com, 希望通過這兩個域名訪問到不同的專案內容,
1、創建 ljm 和 lucien 專案目錄和檔案
mkdir /usr/local/tomcat/webapps/ljm
mkdir /usr/local/tomcat/webapps/lucien
echo "This is ljm page\!" > /usr/local/tomcat/webapps/ljm/index.jsp
echo "This is lucien page\!" > /usr/local/tomcat/webapps/lucien/index.jsp

2、修改 Tomcat 主組態檔
vim /usr/local/tomcat/conf/server.xml
--165行前--插入
<Host name="www.ljm.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/ljm" path="" reloadable="true" />
</Host>
<Host name="www.lucien.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/lucien" path="" reloadable="true" />
</Host>
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
| Host name | 主機名 |
| appBase | Tomcat程式作業目錄,相對路徑為webapps,絕對路徑為/usr/local/tomcat/webapps |
| unpackWARs | 是否解壓war包 |
| autoDeploy | 指示Tomcat運行時,如有新的WEB應用是否允許自動部署 |
| xmlValidation | 是否驗證xml檔案執行有效性檢驗的標志 |
| xmlNamespaceAware | 是否啟用xml命名空間,設定該值與xmlValidation為true,表示對web.xml檔案執行有效性檢驗 |
| docBase | WEB應用的目錄 |
| path | 設定訪問的URI為WEB應用的根目錄 |
| reloadable | 是否在程式有改動時重新載入 |

3、客戶端瀏覽器訪問驗證
echo "192.168.80.10 www.ljm.com www.lucien.com" >> /etc/hosts
瀏覽器訪問 http://www.ljm.top:8080 頁面顯示This is ljm page\!
瀏覽器訪問 http://www.lucien.top:8080 頁面顯示This is lucien page\!


四、Tomcat 優化
- Tomcat默認安裝下的預設配置并不適合生產環境,它可能會頻繁出現假死現象需要重啟,只有通過不斷壓測優化才能讓它最高效率穩定的運行,優化主要包括三方面,分別為作業系統優化(內核引數優化),Tomcat組態檔引數優化,Java虛擬機(JVM)調優,
vim /usr/local/tomcat/conf/server.xml
......
<Connector port="8080" protocol="HTTP/11.1"
connectionTimeout="20000"
redirectPort="8443"
--71行--插入
minSpareThreads="50"
enableLookups="false"
disableUploadTimeout="true"
acceptCount="300"
maxThreads="500"
processorCache="500"
URIEncoding="UTF-8"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image /jpg,image/png"/>


常用優化相關引數
- 【maxThreads】
- Tomcat 使用執行緒來處理接收的每個請求,這個值表示 Tomcat 可創建的最大的執行緒數,默認值是 200,
- 【minSpareThreads】
- 最小空閑執行緒數,Tomcat 啟動時的初始化的執行緒數,表示即使沒有人使用也開這么多空執行緒等待,默認值是 10,
- 【maxSpareThreads】
- 最大備用執行緒數,一旦創建的執行緒超過這個值,Tomcat就會關閉不再需要的socket執行緒,默認值是-1(無限制),一般不需要指定,
- 【URIEncoding】
- 指定 Tomcat 容器的 URL 編碼格式,語言編碼格式這塊倒不如其它 Web服務器軟體配置方便,需要分別指定,
- 【connnectionTimeout】
- 網路連接超時,單位:毫秒,設定為 0 表示永不超時,這樣設定有隱患的,通常默認 20000 毫秒就可以,
- 【enableLookups】
- 是否反查域名,以回傳遠程主機的主機名,取值為:true 或 false,如果設定為 false,則直接回傳 IP 地址,為了提高處理能力,應設定為 false,
- 【disableUploadTimeout】
- 上傳時是否使用超時機制,應設定為 true,
- 【connectionUploadTimeout】
- 上傳超時時間,畢竟檔案上傳可能需要消耗更多的時間,這個根據你自己的業務需要自己調,以使Servlet有較長的時間來完成它的執行,需要與上一個引數一起配合使用才會生效,
- 【acceptCount】
- 指定當所有可以使用的處理請求的執行緒數都被使用時,可傳入連接請求的最大佇列長度,超過這個數的請求將不予處理,默認為 100 個,
- 【compression】
- 是否對回應的資料進行GZIP壓縮,off:表示禁止壓縮;on:表示允許壓縮(文本將被壓縮)、force:表示所有情況下都進行壓縮,默認值為 off,壓縮資料后可以有效的減少頁面的大小,一般可以減小 1/3 左右,節省帶寬,
- 【compressionMinSize】
- 表示壓縮回應的最小值,只有當回應報文大小大于這個值的時候才會對報文進行壓縮,如果開啟了壓縮功能,默認值就是 2048,
- 【compressableMimeType】
- 壓縮型別,指定對哪些型別的檔案進行資料壓縮,
- 【noCompressionUserAgents=“gozilla, traviata”】
- 對于以下的瀏覽器,不啟用壓縮
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/272466.html
標籤:java
上一篇:普歌-允異團隊-【Java知識點】這些Java學習路上你必須知道的底層原理(2)為什么介面中沒有構造方法而抽象類中有構造方法?
下一篇:三角形、梯形和圓形的類封裝
