內容要點:
一、tomcat虛擬主機配置
二、tomcat優化
三、實例演示
一、Tomcat虛擬主機配置
1、某些時候公司有多個項目同時運行時,一臺服務器不建議運行多個Tomcat服務,需要配置虛擬主機
2、通過兩個域名訪問到不同的項目內容
3、步驟
1>.創建www和bbs項目 目錄和文件
2.>修改Tomcat主配置文件
3.>重啓Tomcat服務
4.>測試
二、Tomcat優化
Tomcat 的缺省配置並不適合生產環境,它會頻繁出現假死現象需要重啓,只有通過不斷壓測優化才能讓它最高效率穩定的運行。優化主要有三方面,分爲操作系統優化(內核參數優化),Tomcat 配置文件參數優化,Java 虛擬機(JVM)調優。
Tomcat常用的優化相關參數
【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"】對於以下的瀏覽器,不啓用壓縮 如果已經對代碼進行了動靜分離,靜態頁面和圖片等數據就不需要 Tomcat 處理了,那 麼也就不需要在 Tomcat 中配置壓縮了。因爲這裏只有一臺 Tomcat 服務器,而且壓測的是 Tomcat 首頁,會有圖片和靜態資源文件,所以這裏啓用壓縮
三、實例演示
第一步:安裝配置域名解析服務
[root@localhost ~]# yum install bind -y [root@localhost ~]# vim /etc/named.conf listen-on port 53 { any; }; ... allow-query { any; }; [root@localhost ~]# vim /etc/named.rfc1912.zones zone "kgc.com" IN { type master; file "kgc.com.zone"; allow-update { none; }; }; zone "accp.com" IN { type master; file "accp.com.zone"; allow-update { none; }; }; [root@localhost ~]# cd /var/named/ [root@localhost named]# cp -p named.localhost kgc.com.zone [root@localhost named]# vim kgc.com.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 www IN A 192.168.235.158 [root@localhost named]# cp -p kgc.com.zone accp.com.zone #複製kgc文件並改名爲accp文件,不做修改 [root@localhost named]# systemctl start named #啓動域名解析服務 [root@localhost named]# systemctl stop firewalld.service [root@localhost named]# setenforce 0#關閉防火牆與增強型安全功能
第二步:創建 kgc 和 accp 項目目錄和文件
[root@localhost named]# mkdir /usr/local/tomcat/webapps/kgc #創建kgc站點目錄 [root@localhost named]# echo "This is kgc web" > /usr/local/tomcat/webapps/kgc/index.jsp #編輯kgc首頁 [root@localhost named]# mkdir /usr/local/tomcat/webapps/accp [root@localhost named]# echo "This is accp web" > /usr/local/tomcat/webapps/accp/index.jsp
第三步:修改 Tomcat 主配置文件server.xml
[root@localhost named]# vim /usr/local/tomcat/conf/server.xml #定義www.kgc.com虛擬主機配置 </Host> <Host name="www.kgc.com" appBase="/usr/local/tomcat/webapps" #定義虛擬主機名,並指向站點文件路徑 unpackWARs="true" #開啓war包的更新 autoDeploy="true" #開啓自動部署 xmlValidation="false" #關閉xml驗證 xmlNamespaceAware="false"> #關閉xml命名空間 <Context docBase="/usr/local/tomcat/webapps/kgc" #指定網頁站點路徑 path="" reloadable="true" /> #指定path默認加載的類與reloadable監視類的開啓 </Host> #注意標籤收尾 #定義www.accp.com虛擬主機配置 <Host name="www.accp.com" appBase="/usr/local/tomcat/webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context docBase="/usr/local/tomcat/webapps/accp" path="" reloadable="true" /> </Host> [root@localhost named]# shutdown.sh #關閉Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/java/jdk1.8.0_201-amd64 Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar [root@localhost named]# startup.sh #開啓Tomcat服務Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/java/jdk1.8.0_201-amd64 Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started.
第四步:瀏覽測試網頁
1.使用瀏覽器訪問 http://www.kgc.com:8080 頁面顯示This is kgc web
2.使用瀏覽器訪問 http://www.accp.com:8080 頁面顯示This is accp web
第五步:優化Tomcat
1.未優化前使用apache-jmeter先壓測一下,進行對比
2.修改主配置文件server.xml
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml <Connector port="8080" protocol="HTTP/11.1" # 默認端口8080以及http協議 connectionTimeout="20000" #連接超時20秒 redirectPort="8443" #HTTPS協議號 minSpareThreads="50" #最小空閒線程50個 enableLookups="false" #不開啓反向查找 disableUploadTimeout="true" #上傳超時 acceptCount="300" #等待隊列爲300 maxThreads="500" #最大線程數爲500 processorCache="500" #緩存對象序列爲500 URIEncoding="UTF-8" #字符集支持中文 compression="on" #開啓壓縮功能 compressionMinSize="2048" #壓縮最小閾值爲 2048compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image /jpg,image/png"/> #支持的壓縮類型
3.再次壓測優化後的Tomcat
線網上可以多次壓測並根據壓測結果繼續進行優化,從而使用戶擁有更好的體驗感!