tomcat全攻略
1.tomcat是什么?
Tomcat 服務(wù)器是一個(gè)免費(fèi)的開(kāi)放源代碼的Web 應(yīng)用服務(wù)器,它早期的名稱為catalina,后來(lái)由Apache、Sun 和其他一些公司及個(gè)人共同開(kāi)發(fā)而成,并更名為T(mén)omcat。Tomcat是應(yīng)用(java)服務(wù)器,它是一個(gè)servlet容器,是Apache的擴(kuò)展,但它是獨(dú)立運(yùn)行的。tomat應(yīng)用于Java Servlet, JavaServer Pages,Java Expression Language以及其他的Javaweb開(kāi)發(fā)的技術(shù)。
The Apache Tomcat software is an open source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies. The Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket specifications are developed under the Java Community Process.The Apache Tomcat software is developed in an open and participatory environment and released under the Apache License version 2. The Apache Tomcat project is intended to be a collaboration of the best-of-breed developers from around the world. We invite you to participate in this open development project. To learn more about getting involved, click here.
Apache Tomcat software powers numerous large-scale, mission-critical web applications across a diverse range of industries and organizations. Some of these users and their stories are listed on the PoweredBy wiki page.
Apache Tomcat, Tomcat, Apache, the Apache feather, and the Apache Tomcat project logo are trademarks of the Apache Software Foundation.
--from http://tomcat.apache.org/
2.tomcat yum安裝
1.yum安裝jdk
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
2.yum安裝tomcat
yum install -y tomcat, tomcat-lib, tomcat-admin-webapps, tomcat-webapps, tomcat-docs-webapp
3.tomcat rpm包程序環(huán)境
1.查看程序環(huán)境方式
rpm -ql tomcat
2.環(huán)境介紹
配置文件目錄:/etc/tomcat
主配置文件:server.xml
webapps存放位置:/var/lib/tomcat/webapps/
examples
manager
host-manager
docs
Unit File:tomcat.service
環(huán)境配置文件:/etc/sysconfig/tomcat
4.tomcat配置文件構(gòu)成
server.xml:主配置文件;
web.xml:每個(gè)webapp只有“部署”后才能被訪問(wèn),它的部署方式通常由web.xml進(jìn)行定義,其存放位置為WEB-INF目錄中;web.xml文件為所有的webapps提供默認(rèn)部署相關(guān)的配置;
context.xml:每個(gè)webapp都可以專用的配置文件,它通常由專用的配置文件context.xml來(lái)定義,其存放位置為WEB-INF目錄中;context.xml文件為所有的webapps提供默認(rèn)配置;
tomcat-users.xml:用戶認(rèn)證的賬號(hào)和密碼文件;
catalina.policy:當(dāng)使用-security選項(xiàng)啟動(dòng)tomcat時(shí),用于為tomcat設(shè)置安全策略;
catalina.properties:Java屬性的定義文件,用于設(shè)定類加載器路徑,以及一些與JVM調(diào)優(yōu)相關(guān)參數(shù);
logging.properties:日志系統(tǒng)相關(guān)的配置;
5.Tomcat的核心組件:server.xml
<Server> <Service> <connector/> <connector/> ... <Engine> <Host> <Context/> <Context/> ... </Host> <Host> ... </Host> ... Engine> </Service> </Server>每一個(gè)組件都由一個(gè)Java“類”實(shí)現(xiàn),這些組件大體可分為以下幾個(gè)類型:
頂級(jí)組件:Server
服務(wù)類組件:Service
連接器組件:http, https, ajp(apache jserv protocol)
容器類:Engine, Host, Context
被嵌套類:valve, logger, realm, loader, manager, ...
集群類組件:listener, cluster, ...
6.JSP WebAPP介紹
tomcat能夠運(yùn)行JSP WebAPP?,F(xiàn)在主流大型的web電商web服務(wù)都是用JSP開(kāi)發(fā)的。下面介紹JSP WebAPP。
6.1 JSP WebAPP的組織結(jié)構(gòu)
/: webapps的根目錄
index.jsp:主頁(yè);
WEB-INF/:當(dāng)前webapp的私有資源路徑;通常用于存儲(chǔ)當(dāng)前webapp的web.xml和context.xml配置文件;
META-INF/:類似于WEB-INF/;
classes/:類文件,當(dāng)前webapp所提供的類;
lib/:類文件,當(dāng)前webapp所提供的類,被打包為jar格式;
6.2 webapp歸檔格式
.war:webapp
.jar:EJB的類打包文件;
.rar:資源適配器類打包文件;
.ear:企業(yè)級(jí)webapp;
6.3 部署(deploy)webapp的相關(guān)操作:
deploy:將webapp的源文件放置于目標(biāo)目錄(網(wǎng)頁(yè)程序文件存放目錄),配置tomcat服務(wù)器能夠基于web.xml和context.xml文件中定義的路徑來(lái)訪問(wèn)此webapp;將其特有的類和依賴的類通過(guò)class loader裝載至JVM;
部署有兩種方式:
1.自動(dòng)部署:auto deploy
2.手動(dòng)部署:
2.1 冷部署:把webapp復(fù)制到指定的位置(rpm安裝的tomcat在/var/lib/tomcat/webapps),而后才啟動(dòng)tomcat;
2.2 熱部署:在不停止tomcat的前提下進(jìn)行部署;
熱部署的部署工具有:manager、ant腳本、tcd(tomcat client deployer)等;
undeploy:反部署,停止webapp,并從tomcat實(shí)例上卸載webapp;
start:?jiǎn)?dòng)處于停止?fàn)顟B(tài)的webapp;
stop:停止webapp,不再向用戶提供服務(wù);其類依然在jvm上;
redeploy:重新部署;
6.4 手動(dòng)提供一測(cè)試類應(yīng)用,并冷部署:
mkidr -pv /usr/local/tomcat/webapps/test/{classes,lib,WEB-INF} #創(chuàng)建JSP WebAPP相關(guān)的目錄以及文件 vi /usr/local/tomcat/webapps/test/index.jsp #手動(dòng)創(chuàng)建一個(gè)WebAPP應(yīng)用 <%@ page language="java" %> <%@ page import="java.util.*" %> <html> <head> <title>Test Page</title> </head> <body> <% out.println("hello world"); %> </body> </html>6.4.1 通過(guò)瀏覽器訪問(wèn)測(cè)試
7.Tomcat的常用組件配置
7.1 Server
代表tomcat instance,即表現(xiàn)出的一個(gè)java進(jìn)程;監(jiān)聽(tīng)在8005端口,只接收“SHUTDOWN”。各server監(jiān)聽(tīng)的端口不能相同,因此,在同一物理主機(jī)啟動(dòng)多個(gè)實(shí)例時(shí),需要修改其監(jiān)聽(tīng)端口為不同的端口;
7.2 Service
用于實(shí)現(xiàn)將一個(gè)或多個(gè)connector組件關(guān)聯(lián)至一個(gè)engine組件;
7.3 Connector組件
負(fù)責(zé)接收請(qǐng)求,常見(jiàn)的有三類http/https/ajp;
進(jìn)入tomcat的請(qǐng)求可分為兩類:
(1) standalone : 請(qǐng)求來(lái)自于客戶端瀏覽器;
(2) 由其它的web server反代:來(lái)自前端的反代服務(wù)器,以下提供四種情況
nginx --> http connector --> tomcat httpd(proxy_http_module) --> http connector --> tomcat httpd(proxy_ajp_module) --> ajp connector --> tomcat httpd(mod_jk) --> ajp connector --> tomcatConnector屬性:
port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
address:監(jiān)聽(tīng)的IP地址;默認(rèn)為本機(jī)所有可用地址;
maxThreads:大并發(fā)連接數(shù),默認(rèn)為200;
enableLookups:是否啟用DNS查詢功能;
acceptCount:等待隊(duì)列的大長(zhǎng)度;
secure:安全相關(guān)
sslProtocol:ssl安全協(xié)議
7.4 Engine組件
Servlet實(shí)例,即servlet引擎,其內(nèi)部可以一個(gè)或多個(gè)host組件來(lái)定義站點(diǎn); 通常需要通過(guò)defaultHost來(lái)定義默認(rèn)的虛擬主機(jī);
屬性:
name=
defaultHost="localhost"
jvmRoute=
7.5 Host組件
位于engine內(nèi)部用于接收請(qǐng)求并進(jìn)行相應(yīng)處理的主機(jī)或虛擬主機(jī),示例:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> </Host>常用屬性說(shuō)明:
(1) appBase:此Host的webapps的默認(rèn)存放目錄,指存放非歸檔的web應(yīng)用程序的目錄或歸檔的WAR文件目錄路徑;可以使用基于$CATALINA_BASE變量所定義的路徑的相對(duì)路徑;
(2) autoDeploy:在Tomcat處于運(yùn)行狀態(tài)時(shí),將某webapp放置于appBase所定義的目錄中時(shí),是否自動(dòng)將其部署至tomcat;
示例1:
<Host name="www.huwho.cn" appBase="/appdata/huwho" unpackWARs="true" autoDeploy="true"> </Host>mkdir -pv /appdata/huwho #創(chuàng)建webapps的存放目錄 mkdir -pv /appdata/huwho/ROOT/{lib,classes,WEB-INF} #創(chuàng)建webapp的相關(guān)文件 vi /appdata/huwho/ROOT/index.jsp #提供一個(gè)測(cè)試頁(yè)即可 <%@ page language="java" %> <%@ page import="java.util.*" %> <html> <head> <title>Test Page</title> </head> <body> <% out.println("tomcat server node1"); %> </body> </html>通過(guò)瀏覽器訪問(wèn)測(cè)試:
示例2:JSP WebAPP部署應(yīng)用
注:在示例1實(shí)驗(yàn)的基礎(chǔ)上進(jìn)行此實(shí)驗(yàn),確保目錄在/appdata/huwho,進(jìn)行如下操作
下載此壓縮包:shopxx-a5-Beta.zip
解壓:unzip shopxx-a5-Beta.zip
創(chuàng)建軟鏈接:ln -sv shop shopxx-v3.0-Beta
瀏覽器訪問(wèn)測(cè)試
7.6 Context組件
Context組件是最內(nèi)層次的組件,它表示W(wǎng)eb應(yīng)用程序本身。配置一個(gè)Context最主要的是指定Web應(yīng)用程序的根目錄,以便Servlet容器能夠?qū)⒂脩粽?qǐng)求發(fā)往正確的位置。
官方示例:
<Context path="/PATH" docBase="/PATH/TO/SOMEDIR" reloadable=""/>在上面實(shí)驗(yàn)的基礎(chǔ)上加入context組件內(nèi)容
vi /etc/tomcat/server.xml <Host name="www.huwho.cn" appBase="/appdata/huwho" unpackWARs="true" autoDeploy="true"> <Context path="/e-shop" docBase="/e-shop/eshop" reloadable="true"/> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="huwho_access_log." suffix=".log" pattern="%h %l %u %t "%r" %s %b" /> </Host> mkdir -pv /e-shop cd /e-shop mv shopxx-v3.0-Beta /e-shop/ ln -sv eshop shopxx-v3.0-Beta瀏覽器訪問(wèn)測(cè)試
7.7 Valve組件
用來(lái)攔截請(qǐng)求并在將其轉(zhuǎn)至目標(biāo)之前進(jìn)行某種處理操作,類似于Servlet規(guī)范中定義的過(guò)濾器。
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />Valve存在多種類型:
定義訪問(wèn)日志:
org.apache.catalina.valves.AccessLogValve定義訪問(wèn)控制:
org.apache.catalina.valves.RemoteAddrValve <Valve className="org.apache.catalina.valves.RemoteAddrValve" deny="172\.16\.100\.67"/>8.Tomcat的兩個(gè)管理應(yīng)用
Tomcat有它自己的管理應(yīng)用,我們只需要經(jīng)過(guò)簡(jiǎn)單的配置就可以啟用它。
一個(gè)是manager,另一個(gè)是host-manager。
vi tomcat-users.xml #配置文件中加入以下三行開(kāi)啟tomcat管理應(yīng)用 <role rolename="admin-gui"/> <role rolename="manager-gui"/> <user username="tomcat" password="123456" roles="manager-gui,admin-gui"/>配置好了,讓我們通過(guò)瀏覽器訪問(wèn)瞧瞧。點(diǎn)擊圖中標(biāo)識(shí)的位置,就可以進(jìn)入管理中心了。
提示輸入賬號(hào)以及密碼。根據(jù)配置文件自己配置的賬號(hào)密碼,輸入即可。
查看管理頁(yè)面
9.Tomcat集群部署
9.1 nt(nginx+tomcat)
1.nginx反向代理Tomcat示例
server { server_name www.huwho.cn; listen 80; location / { proxy_pass http://192.168.0.13:8080; } location ~* \.(jsp|do) { proxy_pass http://192.168.0.13:8080; } 打開(kāi)瀏覽器測(cè)試,nginx代理成功
2.nginx負(fù)載均衡反向代理Tomcat示例
vi /etc/nginx/nginx.conf #http{}段中加入如下內(nèi)容 upstream tcsrvs { #hash $request_uri consistent; server 192.168.0.13:8080; server 192.168.0.14:8080; } vi /etc/nginx/conf.d/huwho.conf server { server_name www.huwho.com; listen 80; location / { proxy_pass http://tcsrvs; } }打開(kāi)瀏覽器測(cè)試,web頁(yè)面正常訪問(wèn),且能訪問(wèn)兩臺(tái)Tomat主機(jī)
9.2 at(httpd+tomcat)
1.httpd反向代理Tomat示例
vi /etc/httpd/conf.d/huwho.conf <VirtualHost *:80> ServerName www.huwho.cn ProxyRequests Off ProxyVia On ProxyPreserveHost On <Proxy *> Require all granted </Proxy> ProxyPass / http://192.168.0.13:8080/ ProxyPa***everse / http://192.168.0.13:8080/ <Location /> Require all granted </Location> </VirtualHost>2.proxy_http_module代理配置示例(代理+負(fù)載均衡)
cat httpd-tomcat.huwho.conf <Proxy balancer://tcsrvs> BalancerMember http://192.168.0.13:8080 loadfactor=1 BalancerMember http://192.168.0.14:8080 loadfactor=2 ProxySet lbmethod=byrequests </Proxy> <VirtualHost *:80> ServerName www.huwho.cn ProxyRequests Off ProxyVia On ProxyPreserveHost On <Proxy *> Require all granted </Proxy> ProxyPass / balancer://tcsrvs/ ProxyPa***everse / balancer://tcsrvs/ <Location /> Require all granted </Location> <Location /balancer-manager> SetHandler balancer-manager ProxyPass ! Require ip 10.0.0.1 </Location> </VirtualHost>打開(kāi)瀏覽器測(cè)試,web頁(yè)面正常訪問(wèn),且能訪問(wèn)兩臺(tái)Tomat主機(jī)
3. proxy_ajp_module代理配置示例(代理+負(fù)載均衡)
[root@httpd conf.d]# cat http-ajp-huwho.conf <Proxy balancer://ajsrvs> BalancerMember ajp://192.168.0.13:8009 BalancerMember ajp://192.168.0.14:8009 ProxySet lbmethod=byrequests </Proxy> <VirtualHost *:80> ServerName ajp.huwho.cn ProxyRequests Off ProxyVia On ProxyPreserveHost On <Proxy *> Require all granted </Proxy> ProxyPass / balancer://ajsrvs/ ProxyPa***everse / balancer://ajsrvs/ <Location /> Require all granted </Location> </VirtualHost>打開(kāi)瀏覽器測(cè)試,web頁(yè)面正常訪問(wèn),且能訪問(wèn)兩臺(tái)Tomat主機(jī)
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
標(biāo)題名稱:Tomcat全攻略-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://chinadenli.net/article6/ddidig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、品牌網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站制作、網(wǎng)站策劃、App開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
網(wǎng)頁(yè)設(shè)計(jì)公司知識(shí)