Tomcat—部署配置及優化(安裝部署;虛擬主機配置;優化)
目錄
網頁服務總結:
靜態網頁:Apache,Ngint支援,網頁型別字尾.html .htm
動態網頁:Tomcat支援,網頁型別字尾.jsp
php也可以,但是需要依賴架構
一、Tomcat
1.1 Tomcat介紹及作用
免費的,開放原始碼的Web應用伺服器
Apache軟體基金會(Apache Software Foundation)Jakarta專案中的一個核心專案
由Apache,Sun和一些公司及個人共同開放而成
深受Java愛好者的喜愛,並得到部分軟體開發商的認可
目前比較流行的Web應用伺服器
作用:Tomcat是Apache 下的一個子專案,它具備Web伺服器的所有功能,不僅可以監聽接受請求並響應靜態資源,而且可以在後端執行特定規範的Java 程式碼Servlet,同時將執行的結果以HTML程式碼的形式返回客戶端。
1.2 Tomcat核心元件
1.3 Tomcat組成圖示
1.31 Tomcat組成解釋
server:tomcat例項
1.注意一個JVM(java虛擬機器)只能有一個tomact例項
- service:接收請求到處理請求的所有元件的集合
2.service元件分為connector(聯結器)和container(容器)兩部分
- connector負責接受使用者請求和訊息報文的,將訊息報文發往container
- container是容器對外對映的介面,用於封閉和管理servlet
- engine:是一個容器,是用來將使用者的請求發往它下面的虛擬主機的,engine是載入虛擬主機的一個容器
- hosts:是虛擬主機的容器
- context:管理servlet。是host虛擬主機的實體內容的指向
- servlet:是包含html的java檔案,其實是java語言的一個類
3.jsp與servlet的區別
- jsp:是包含java程式的html檔案。展示前端頁面的
- servlet:是包含html的java檔案,後臺實際執行具體操作的元件
1.32 Tomcat請求處理解析
1.使用者在瀏覽器中輸入網址localhost:8080/ test/index. jsp, 請求被髮送到本機埠8080, 被在那裡監聽的Coyote HTTP/1.1 Connector獲得;
2.Connector 把該請求交給它所在的Service 的Engine (Container) 來處理,並等待Engine 的回應;
3.Engine 獲得請求localhost/test/ index. jsp, 匹配所有的虛擬主機Host;
4.Engine 匹配到名為localhost 的Host (即使匹配不到也把請求交給該Host 處理,因為該Host被定義為該Engine的預設主機),名為localhost的Host獲得請求/test/ index. jsp, 匹配它所擁有的所有Context。 Host 匹配到路徑為/test 的Context (如果匹配不到就把該請求交給路徑名為“”的Context去處理
5.path=“/test”的Context 獲得請求/ index. jsp, 在它的mapping table中尋找出對應的Servlet。Context 匹配到URL Pattern 為*. jsp 的Servlet, 對應於JspServlet類;
6.構造HttpServletRequest 物件和HttpServletResponse 物件,作為引數呼叫JspServlet的doGet ()或doPost(),執行業務邏輯、資料儲存等;
7.Context把執行完之後的HttpServletResponse物件返回給Host;
8.Hos t把Ht tpServl etResponse物件返回給Engine;
9.Engine把Ht tpServletResponse物件返回Connector;
10.Connector把HttpServletResponse 物件返回給客戶Browser。
二、Tomcat 安裝部署
2.1 安裝Toncat
匯入軟體包
jdk-8u91-linux-x64.tar
apache-tomcat-8.5.16.tar
1.tar解包
[root@server1 ~]# tar zvxf jdk-8u91-linux-x64.tar.gz
[root@server1 ~]# mv jdk1.8.0_91/ /usr/local/java #解壓縮軟體包到/usr/local/下生成java目錄
[root@server1 ~]# cd /usr/local/java/
[root@server1 java]# ls -lh
2.設定環境變數
環境變數是和Shell緊密相關的,使用者登入系統後就啟動了一個Shell。對於Linux來說一般是bash,但也可以重新設定或切換到其它的Shell。 對於UNIX,可能是CShelll。環境變數是通過Shell命令來設定的,設定好的環境變數又可以被所有當前使用者所執行的程式所使用。對於bash這個Shell程式來說,可以通過變數名來訪問相應的環境變數,通過export來設定環境變數。
etc/profile:此檔案為系統的每個使用者設定環境資訊,當使用者第一次登入時,該檔案被執行。
並從/etc/profile.d目錄的配置檔案中搜集shell的設定.
注:在這裡我們設定是為所有使用者可使用的全域性變數。
[root@server1 java]# cd
[root@server1 ~]# vi /etc/profile #末行新增
export JAVA_HOME=/usr/local/java #定義變數並設為全域性變數,設定JAVA的根目錄
export JAVA_JRE=/usr/local/java/jre
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/lib:$JAVA_JRE/bin:$JAVA_JRE/lib #引用環境變數
[root@server1 ~]# source /etc/profile #變數立即生效
[root@server1 ~]# echo $PATH #檢視當前變數
[root@server1 ~]# java -version #檢視版本
3.編譯java指令碼,測試java是否正常執行
[root@server1 ~]# vi abc.java
public class abc {
public static void main (String[] args) {
System.out.println ("hello world!!!");
}
}
[root@server1 ~]# javac abc.java #編譯
[root@server1 ~]# java abc #執行
4.解壓縮Tomcat
[root@server1 ~]# tar zvxf apache-tomcat-8.5.16.tar.gz
[root@server1 ~]# mv apache-tomcat-8.5.16 /usr/local/tomcat8 #生成tomcat8目錄
[root@server1 ~]# cd /usr/local/tomcat8/bin
[root@server1 bin]# ls -lh #檢視tomcat啟動和關閉指令碼
5.指令碼建立軟連結並啟動
[root@server1 bin]# cd
[root@server1 ~]# ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup
[root@server1 ~]# ln -s /usr/local/tomcat8/bin/shutdown.sh /usr/bin/tomcatdown
[root@server1 ~]# tomcatup 服務啟動
[root@server1 ~]# netstat -anpt | grep 8080 #檢視8080埠狀態(tomcat預設埠)
2.2 加入測試頁面,登入訪問
1.建立站點目錄
[root@server1 ~]# mkdir -pv /web/app1 #顯示過程的巢狀建立web目錄
[root@server1 ~]# mkdir -p /web/app2
[root@server1 ~]# vi /web/app1/index.jsp #建立主頁
新增:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>JSP Web 1</head>
<body>
<% out.println("this is apple,Welcome!!!");%>
<div>動態頁面</div><br/><img src="a.jpg" />
</body>
</html>
#%%:表示區間
#這個jsp中引入的page標籤
#language表示語言是java
#import類似於java類中的import就是把包匯入進來,這樣在jsp才可以呼叫包中的類
#pageEncoding表示頁面的編碼格式
[root@server1 ~]# cd /web/app1 #放入a.jpg圖片
2.配置檔案中引用目錄
[root@server1 app1]# cd
[root@server1 ~]# vi /usr/local/tomcat8/conf/server.xml
新增:
<Context docBase="/web/app1" path="" reloadable="false">
</Context>
#docBase:wed應用的文件基準目錄
#reloadable:本項為true時,當web.xml或者class有改動的時候都會自動重新載入不需要重新啟動服務(所謂的支援熱釋出功能)
#path=“”指定訪問路徑URI(虛擬目錄名),訪問url路徑下是否跟內容
[root@server1 ~]# tomcatdown #關閉服務
[root@server1 ~]# tomcatup #重啟服務
[root@server1 ~]# netstat -anpt | grep 8080 #檢視埠狀態
瀏覽器訪問http://20.0.0.11:8080 #本機地址:埠號
2.3 Tomcat本地可通過域名訪問
1.配置檔案
[root@server1 ~]# vi /usr/local/tomcat8/conf/server.xml #修改
Host name="www.aa.com"
[root@server1 ~]# tomcatdown
[root@server1 ~]# tomcatup
[root@server1 ~]# netstat -anpt | grep 8080
2.客戶機新增對映記錄
[root@server2 ~]# vi /etc/hosts #新增
20.0.0.11 www.aa.com
瀏覽器訪問www.aa.com:8080 #訪問不了,關閉防火牆
三、虛擬主機配置
有多個專案同時執行時,一臺伺服器不建議執行多個Tomcat服務,需要配置虛擬主機
通過兩個域名訪問到不同的專案內容
步驟:
1.建立www和bbs專案目錄和檔案
2.修改Tomcat主配置檔案
3.重啟Tomcat服務
4.訪問測試
Connector容器結束方式:
或者 …/>
…
3.1 Tomcat虛擬主機(基於域名;基於埠)
3.11 基於域名
1.在已存在的元件中增加一個新的容器配置
[root@server1 ~]# vi /usr/local/tomcat8/conf/server.xml #末尾</Host>下新增
<Host name="www.ab.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="/web/app2" path="" reloadable="false">
</Context>
</Host>
2.加入測試頁面,登入訪問
[root@server1 ~]# cd /web/app1
[root@server1 app1]# cp index.jsp /web/app2 #拷貝網頁到app2
[root@server1 app1]# cd /web/app2
[root@server1 app2]# ls -lh
[root@server1 app2]# vi index.jsp #修改,並放入b.jpg圖片
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>JSP Web 2</head>
<body>
<% out.println("this is pear,Welcome!!!");%>
<div>動態頁面2</div><br/><img src="b.jpg" />
</body>
</html>
[root@server1 app2]# tomcatdown
[root@server1 app2]# tomcatup
[root@server1 app2]# netstat -anpt | grep 8080
3.客戶機新增對映記錄
[root@server2 ~]# vi /etc/hosts #新增
www.ab.com
瀏覽器訪問www.ab.com:8080
3.12 基於埠
1.需要建立元件及裡面的各個元件(元件需完整)
[root@server1 ~]# vi /usr/local/tomcat8/conf/server.xml
先刪除之前的配置檔案:
</Host>
<Host name="www.ab.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="/web/app2" path="" reloadable="false">
</Context>
再在</Service>下新增:
<Service name="Catalina2">
<Connector port="8090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
<Engine name="Catalina2" defaultHost="localhost">
<Host name="www.ab.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context docBase="/web/app2" path="" reloadable="false">
</Context>
</Host>
</Engine>
</Service>
[root@server1 ~]# tomcatdown
[root@server1 ~]# tomcatup
[root@server1 ~]# netstat -anpt | grep java
[root@server1 ~]# netstat -anpt | grep 8090
[root@server1 ~]# netstat -anpt | grep 8080
2.瀏覽器訪問www.aa.com:8080
瀏覽器訪問www.ab.com:8090
四、Tomcat優化
作業系統優化(核心引數優化)
Tomcat配置檔案引數優化
Java虛擬機器(JVM)調優
4.1 配置檔案引數優化
Tomcat主配置檔案server.xml常用的配置引數
Tomcat配置檔案引數優化
1.maxThreads: Tomcat 使用執行緒來處理接收的每個請求,這個值表示Tomcat 可建立的 最大的執行緒數,預設值是200。
2.minSpareThreads: 最小空閒執行緒數,Tomcat 啟動時的初始化執行緒數,表示即使沒有人使用也開這麼多空執行緒等待,預設值是10。
3.maxSpareThreads: 最大備用執行緒數,一旦建立的執行緒超過這個值,Tomcat就會關閉不再需要的socket 執行緒。預設值是 -1 (無限制),一般不需要指定。
4.URIEncoding: 指定Tomcat 容器的URL編碼格式,Tomcat 語言編碼格式這塊不如其它Web 伺服器軟體配置方便,需要分別指定。
5.connnectionTimeout: 網路連線超時,單位:毫秒,設定為0表示永不超時,這樣設定有隱患的。通常預設20000毫秒(20秒)就可以。
6.enableLookups: 是否反查域名,以返回遠端主機的主機名,取值為: true 或false,如果設定為false,則直接返回IP地址,為了提高處理能力,應設定為false。
7.disableUploadTimeout:上傳時是否使用超時機制。應設定為true。
8.connectionUploadTimeout:上傳超時時間,畢竟檔案上傳可能需要消耗更多的時間,該引數需要根據自己的業務需要自行調整,以使Servlet 有較長的時間來完成它的執行,需要與上一個引數一起配合使用才會生效。
9.acceptCount:指定當所有可以使用的處理請求的執行緒都被使用時,可傳入連線請求的最大佇列長度,超過這個數的請求將不予處理,預設為100個。
10.compression: 是否對響應的資料進行GZIP 壓縮,off表示禁止壓縮、on表示允許壓縮(文字將被壓縮)、force 表示所有情況下都進行壓縮,預設值為off。壓縮資料後可以有效的減少頁面的大小,一般可以減小1/3 左右,因而節省頻寬。
11.compressionMinSize: 表示壓縮響應的最小值,只有當響應報文大小大於這個值的時候才會對報文進行壓縮,如果開啟了壓縮功能,預設值就是2048。(1k)
12.compressableMimeType:壓縮型別,指定對哪些型別的檔案進行資料壓縮。
13.noCompressionUserAgents=” gozilla, traviata": 對於以下的瀏覽器,不啟用壓縮
相關文章
- Tomcat部署解析及配置優化Tomcat優化
- Tomcat部署及優化Tomcat優化
- Tomcat常用優化配置Tomcat優化
- Tomcat安裝與優化Tomcat優化
- nginx部署及簡單優化Nginx優化
- MySQL 主從複製安裝部署配置MySql
- next主題配置與優化優化
- 在CentOS 8上安裝與配置Apache虛擬主機CentOSApache
- Nginx虛擬主機配置Nginx
- tomcat中虛擬主機以及web應用程式的配置TomcatWeb
- 部署KVM虛擬化平臺
- 伺服器虛擬化部署是什麼有什麼優缺點伺服器
- 虛擬機器Tomcat的安裝虛擬機Tomcat
- Linux中Vsftpd服務的部署及優化LinuxFTP優化
- Redis 主從複製與哨兵優化部署解析Redis優化
- Tomcat 8安裝部署Tomcat
- 【Hadoop】大資料安裝部署之虛擬機器的安裝Hadoop大資料虛擬機
- lnmp虛擬主機安全配置研究LNMP
- HBase記憶體配置及JVM優化記憶體JVM優化
- BlueHost雲虛擬主機優勢
- Centos安裝tomcat9及配置CentOSTomcat
- vim安裝及個性化配置
- webpack常用優化配置Web優化
- Redis優化配置解析Redis優化
- Tomcat 部署及最佳化詳細教程!Tomcat
- 虛擬化環境配置指南
- 效能優化|Tomcat 服務優化優化Tomcat
- linux基礎:1、linux簡介、虛擬化軟體的安裝與配置、Xshell的安裝與配置Linux
- Redis 偽分散式安裝部署配置Redis分散式
- RabbitMQ 安裝部署與配置總結MQ
- 啥是伺服器虛擬化,虛擬化的優勢伺服器
- 虛擬主機有哪些優缺點
- Hadoop叢集--linux虛擬機器Hadoop安裝與配置、克隆虛擬機器HadoopLinux虛擬機
- GPU虛擬機器建立時間深度優化GPU虛擬機優化
- Windows虛擬機器安裝Linux的基礎配置Windows虛擬機Linux
- VMware安裝CentOS虛擬機器與配置網路CentOS虛擬機
- VMware 安裝 Centos 7 虛擬機器配置網路CentOS虛擬機
- Debian 11 配置優化指南優化