您好,登錄后才能下訂單哦!
Tomcat服務器是一個免費的開放源代碼的Web應用服務器,屬于輕量級應用服務器,在中小型系統和并發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP程序的首選。一般來說,Tomcat雖然和Apache或者Nginx這些Web服務器一樣,具有處理HTML頁面的功能,然而由于其處理靜態HTML的能力遠不及Apache或者Nginx,所以Tomcat通常是作為一個Servlet和JSP容器,單獨運行在后端。如圖:
Tomcat自5.x版本以來,其性能上已經得到了大幅的提升,再加上其開放性的框架和可二次開發等特性,已經完全可以用在訪問量不是很大的生產環境下。目前大多數用于JSP技術開發的電子商務網站已經基本應用了Tomcat。
在安裝Tomcat之前必須先安裝JDK。JDK的全稱是Java Development Kit,是Sun公司免費提供的Java語言的軟件開發工具包,其中包含Java虛擬機(JVM)。編寫好的Java源程序經過編譯可形成Java字節碼,只要安裝了JDK,就可以利用JVM解釋這些字節碼文件,從而保證了Java的跨平臺性。
在平臺兼容性方面,JDK作為解釋字節碼文件并據此調用操作系統API實現對應功能的Java虛擬機,與操作系統類型和平臺位數密切相關,因此存在不同類型的版本,而Tomcat也具有上述特征。Centos 7默認情況下已經安裝JDK。所以只需下載Tomcat軟件即可。
本次案例中使用的軟件包apache-tomcat-8.5.16.tar.gz網盤鏈接:https://pan.baidu.com/s/11Puem2_pMMhEnWAgriJ-sA
提取碼:3mzo
[root@localhost ~]# java -version
openjdk version "1.8.0_102"
OpenJDK Runtime Environment (build 1.8.0_102-b14)
OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)
//用命令查看,已經安裝完成。
Tomcat服務的安裝方式十分簡單,如下:
[root@localhost ~]# tar zxf apache-tomcat-8.5.16.tar.gz -C /usr/src
[root@localhost ~]# mv /usr/src/apache-tomcat-8.5.16/ /usr/local/tomcat8
//由于Tomcat軟件十分簡單,無須安裝
//為了日后的使用,建議更換其解壓后的目錄,并為其改名
[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh
//使用Tomcat程序自帶的啟動腳本啟動Tomcat服務
Using CATALINA_BASE: /usr/local/tomcat8
Using CATALINA_HOME: /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
Tomcat started.
[root@localhost ~]# netstat -anpt | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 3493/java
//查看其監聽端口(Tomcat服務默認的端口是8080)
[root@localhost ~]# firewall-cmd --add-port=8080/tcp
success
//開啟防火墻其服務的端口
剛才安裝移動后的主目錄是/usr/local/tomcat8/
[root@localhost ~]# ll /usr/local/tomcat8/
總用量 92
drwxr-x---. 2 root root 4096 9月 4 23:56 bin
drwx------. 3 root root 254 9月 4 23:57 conf
drwxr-x---. 2 root root 4096 9月 4 23:56 lib
-rw-r-----. 1 root root 57092 6月 22 2017 LICENSE
drwxr-x---. 2 root root 240 9月 5 00:02 logs
-rw-r-----. 1 root root 1723 6月 22 2017 NOTICE
-rw-r-----. 1 root root 7064 6月 22 2017 RELEASE-NOTES
-rw-r-----. 1 root root 15946 6月 22 2017 RUNNING.txt
drwxr-x---. 2 root root 30 9月 4 23:56 temp
drwxr-x---. 7 root root 81 6月 22 2017 webapps
drwxr-x---. 3 root root 22 9月 4 23:57 work
主要目錄說明:
- bin:存放Windows或Linux平臺上啟動或關閉Tomcat的腳本文件;
- conf:存放Tomcat服務器的各種全局配置文件,其中最重要的是server.xml和web.xml;
- lib:存放Tomcat運行需要的庫文件(JARS);
- logs:存放Tomcat執行時的LOG文件;
- webapps:Tomcat的主要Web發布目錄(包括應用程序實例);
- work:存放JSP編譯后產生的class文件。
[root@localhost ~]# ll /usr/local/tomcat8/conf/
總用量 224
drwxr-x---. 3 root root 23 9月 4 23:57 Catalina
-rw-------. 1 root root 13816 6月 22 2017 catalina.policy
-rw-------. 1 root root 7376 6月 22 2017 catalina.properties
-rw-------. 1 root root 1338 6月 22 2017 context.xml
-rw-------. 1 root root 1149 6月 22 2017 jaspic-providers.xml
-rw-------. 1 root root 2358 6月 22 2017 jaspic-providers.xsd
-rw-------. 1 root root 3622 6月 22 2017 logging.properties
-rw-------. 1 root root 7511 6月 22 2017 server.xml
-rw-------. 1 root root 2164 6月 22 2017 tomcat-users.xml
-rw-------. 1 root root 2633 6月 22 2017 tomcat-users.xsd
-rw-------. 1 root root 168251 6月 22 2017 web.xml
主要配置文件說明:
- catalina.policy:權限控制配置文件;
- catalina.properties:Tomcat屬性配置文件;
- context.xml:上下文配置文件;
- logging.properties:日志log相關配置文件;
- server.xml:主配置文件;
- tomcat-users.xml:manager-gui管理配置文件(Tomcat安裝后默認提供一個manager管理界面,通過配置該文件可以開啟訪問);
- web.xml:Tomcat的servlet、servlet-mapping、filter、MIME等相關配置。
server.xml為Tomcat的主要配置文件,通過配置該文件,可以修改Tomcat的啟動端口、網站目錄、虛擬主機、開啟https等重要功能。
整個server.xml由以下結構構成:<Server>、<Service>、<Connector /><Engine >、<Host>、<Context>、</Context></Host></Engine></Service>和</Server>。
以下是默認安裝server.xml文件的部分內容,其中<!-- -->內的內容時注釋信息(經常修改的地方已經附有注釋信息)。
[root@localhost ~]# vim /usr/local/tomcat8/conf/server.xml
<?xml version="1.0" encoding="UTF-8"?>
............ //省略部分內容
<Server port="8005" shutdown="SHUTDOWN">
//Tomcat關閉端口,默認只對本機地址開放,可以在本機通過Telnet 127.0.0.1 8005訪問,
//對Tomcat進行關閉操作
............ //省略部分內容
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
//Tomcat啟動的默認端口號8080,可以根據需要進行更改。
............ //省略部分內容
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
//Tomcat啟動AJP 1.3連接器時默認的端口號,可以根據需要進行更改
............ //省略部分內容
//以下為Tomcat定義虛擬主機時的配置及日志配置
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
server元素代表了整個CatAlina的servlet容器。
Service是這樣一個集合:它由一個或者多個Connector,以及一個Engine(負責處理所有Connector所獲得的客戶請求)組成。
一個Connector在某個指定端口上偵聽客戶請求,并將獲得的請求交給Engine來處理,從Engine處獲得回應并返回客戶。
Tomcat有兩個典型的Connector:一個直接偵聽來自browser的http請求,一個偵聽來自其他webserver的請求。
- Coyote HTTP/1.1 Connector在端口8080處偵聽來自客戶browser(瀏覽)的http請求;
- Coyote JK2 Connector 在端口8009處偵聽來自其他文本server(Apache)的servlet/jsp代理請求。
Engine下可以配置多個虛擬主機virtual host,每個虛擬主機都有一個域名。
當Engine獲得一個請求時,它把該請求匹配到某個Host上,然后把該請求交給該host來處理。
Engine有一個默認虛擬主機,當請求無法匹配到任何一個host上時,將交給該默認主機處理。
Host代表一個virtual Host(虛擬主機),每個虛擬主機和某個網絡域名Domain Name相匹配。
每個虛擬主機下都可以部署一個或多個web app,每個web app對應一個Context,有一個Context path。
當host獲得一個請求時,將把該請求匹配到某個Context上,然后把該請求交給該Context來處理,匹配的方法是“最長匹配”,所以一個path==""的Context將成為該Host的默認Context。
所有無法和其他Context的路徑名匹配的請求都將最終和該默認Context匹配。
一個Context對應一個web application ,一個web application由一個或者多個servlet組成。
[root@localhost ~]# mkdir -p /web/webapp
[root@localhost ~]# vim /web/webapp/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<% out.println("welcome to test");%>
</body>
</html>
[root@localhost ~]# vim /usr/local/tomcat8/conf/server.xml
…………………… //省略部分內容
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
//host定義一個虛擬主機,域名為localhost,appBase定義應用程序基準目錄,unpackWARs定義是否自動解壓,autoDeploy定義是否自動部署
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context docBase="/web/webapp" path="" reloadable="false">
</Context>
//context定義一個web應用(虛擬目錄),path指定訪問目錄,docBase定義網頁目錄,當應用程序發生變化時候,自動裝載,不用重啟tomcat(手動添加 <Context ……></Context>內容)
</Host>
[root@localhost ~]# /usr/local/tomcat8/bin/shutdown.sh
[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh
//重啟Tomcat服務
這說明Tomcat服務虛擬目錄已經生效!
———————— 本文至此結束,感謝閱讀 ————————
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。