Tomcat系列之組件詳解及服務安裝配置
Servlet是一種CGI技術,任何程序的修改都會重新編譯。
引進jsp, 是得java可以嵌套到html中,jasper可以將
Jsp裝成java,依賴servletcontainer。
Engine: 就是一個servlet container的實現,一個server可以有多個engine,
所以必須有一個組件把server和engine連接起來,這就connector.
Connector有很多種。
Connector: 一個server有多個engine,server怎麼判斷接受到的請求發送那個engine呢?所以,需要連接器,負責連接server和engine, 有http連接器,jpa連接器
Tomcat內部有一個web服務器,可以功能在在80端口;
Servlet contianer具有servlet功能的JVM
Service: 一個server可以通過多個連接器(http,jps)關聯到同一個engine,同時一個又可以有多個引擎,那怎麼定義一個server關聯到engine?service出現的主要
目的就是講server通過
主要目的將一個或者多個連接器關聯到某engine,一個service內部最多隻能
有一個引擎。
Server: 每一個server就是一個tomcat的實例,server解碼http請求,
方向用戶請求的是http請求的頁面,需要調用jasper,這些都是
有Engine完成。
Server是頂級組件。
Service:普通組件,關聯conector到engine
Engine: 容器組件,能解碼jasper和執行servlet的
Host: 容器組件,在engine內部實現虛擬主機的,一個engine可以
有多個虛擬主機,必須指定一個默認主機
Context: 容器類組件,context定義在host, 每一個context都可以
部署一個程序的,描述程序怎麼部署
容器組件:Engine,Host,Context
頂級組件:Server,service
Realm: 用戶賬戶數據庫
Valva: 領域,說白就是一個數據庫,能實現數據庫的認證,
基於訪問日誌可以用valva實現,基於IP認證可以用valva實現
Tomcat還有更多的其他組件:
Tomcat.xml
Apache的mod_proxy和mod_jk都可以實現反向代理,
都支持支持集羣。
Mod_proxy: 能以二進制方式發往後方(使用ajp協議),這是
使用apache的好處,效率高,但Nginx只能使用http請求的方式。
Nginx: 以http請求發送到後方(使用http協議),自己實現
某種算法,分發請求;也可以實現動靜分離。
Apache和tomcat實現負載均衡,apache要工作在
反向代理模式,apache可以根據流量,後端服務器的
健康狀況來轉發,並通過web接口提供頁面啓用和禁用
服務器。
Server.xml配置解釋:
Tomcat各組件間的關係:
<server>
<service>
<conector />
<Engine>
<host>
<context></context>
</host>
</Engine>
<service>
</server>
先配置好JDK、
Tomcat是javax寫的
Tomcat目錄結構:
/bin: 自帶命令,catalina.sh(核心腳本)
/conf: 配置文件,
tomcat啓動會讀入tomcat_users.xml,完成用戶認證
Web.xml默認應用程序部署描述符
部署:將一個web應用程序依賴的類裝載進JVM
Context.xml: 爲上下文提供的描述文件
Catalina.propeties定義tomcat自身的屬性
Loging.properties定義日誌配置屬性
Catalina.policy定義tomcat自身的安全策略的,定義哪些資源可以通過互聯網被訪問
通常修改的文件只有xml.
Vim server.conf //用vim可以語法着色的
聲明tomcat的目錄:
Export CATALINA_HOME=/usr/local/tomcat
要永久有效:
Vim /etc/profile.d/tomcat.sh
Export CATALINA_HOME=/usr/local/tomcat
Export PATH=$PATH:$CATALINA_HOME/bin
Catalina.sh version
Catalina.sh start //啓動
Netstat –tnlp //查看端口是否被監聽
/lib 依賴庫,jasper.jar, servlet-api.jar
/logs 訪問日誌
Catalina.out//正在使用的文件
/temp 臨時文件目錄
/webapp 應用程序目錄
/work 工作目錄,每一個engine都有自己獨立目錄,在這個engine下每一個主機
都有自己的工作目錄,每個主機下每個應用程序都有自己目錄(每一個JSP要轉成java,java又要轉成class,這就是工作區間)
可以啓動寫一個簡單的腳本,用來啓動tomcat:
Vim /etc/rc.d/init.d/tomcat
//此處寫啓動tomcat腳本
Chmod +x/etc/rc.d/init.d/tomcat
Chkconfig --add tomcat
Chkconfig --list tomcat
Service tomcat stop
Service tomcat start
檢測tomcat配置是否有錯:
#Service tomcat configtest