主程序:
·tomcat·tomcat-admin-webapps·tomcat-webapps·tomcat-docs-webapp·java-1.8.0-openjdk
配置文件:
配置文件目錄:/etc/tomcat主配置文件:server.xmlwebapps存放位置:/var/lib/tomcat/webapps/webapps的根目錄·index.jsp:主頁;·WEB-INF/:當前webapp的私有資源路徑;通常用于存儲當前webapp的web.xml和context.xml配置文件;·META-INF/:類似于WEB-INF/;·classes/:類文件,當前webapp所提供的類;·lib/:類文件,當前webapp所提供的類,被打包為jar格式環境配置文件:/etc/sysconfig/tomcat·server.xml:主配置文件;·web.xml:每個webapp只有“部署”后才能被訪問,它的部署方式通常由web.xml進行定義,其存放位置為WEB-INF/目錄中;·context.xml:每個web都可以專用的配置文件,它通常由專用的配置文件context.xml來定義,其存放位置為WEB-INF/目錄中;·tomcat-users.xml:用戶認證的賬號和密碼文件;·catalina.policy:當使用-security選項啟動tomcat時,用于為tomcat設置安全策略;·catalina.properties:Java屬性的定義文件,用于設定類加載器路徑,以及一些與JVM調優相關參數;·logging.properties:日志系統相關的配置
測試類代碼:
#hello world<%@ page language=”java” %><%@ page import=”java.util.*” %><html><head><title>Test Page</title></head><body><% out.println(“hello world”);%></body></html>#session會話測試<%@ page language=”java” %><html><head><title>TomcatB</title></head><body><h1><font color=”blue”>TomcatB.magedu.com</font></h1><table align=”centre” border=”1″><tr><td>Session ID</td><% session.setAttribute(“magedu.com”,”magedu.com”); %><td><%= session.getId() %></td></tr><tr><td>Created on</td><td><%= session.getCreationTime() %></td></tr></table></body></html>
常用組件配置:
·Server:代表tomcat instance,即表現出的一個java進程;監聽在8005端口,只接收“SHUTDOWN”。各server監聽的端口不能相同。
·Service:用于實現將一個或多個connector組件關聯至一個engine組件;
·Connector:
負責接收請求,常見的有三類http/https/ajp;進入tomcat的請求可分為兩類:(1) standalone : 請求來自于客戶端瀏覽器;(2) 由其它的web server反代:來自前端的反代服務器;nginx –> http connector –> tomcathttpd(proxy_http_module) –> http connector –> tomcathttpd(proxy_ajp_module) –> ajp connector –> tomcat屬性:port=”8080″protocol=”HTTP/1.1″connectionTimeout=”20000″address:監聽的IP地址;默認為本機所有可用地址;maxThreads:最大并發連接數,默認為200;enableLookups:是否啟用DNS查詢功能;acceptCount:等待隊列的最大長度;
·Engine組件:Servlet實例,即servlet引擎,其內部可以一個或多個host組件來定義站點; 通常需要通過defaultHost來定義默認的虛擬主機;
屬性:name=defaultHost=”localhost”jvmRoute=
·Host組件:位于engine內部用于接收請求并進行相應處理的主機或虛擬主機。
示例:<Host name=”localhost” appBase=”webapps”unpackWARs=”true” autoDeploy=”true”></Host>常用屬性說明:(1) appBase:此Host的webapps的默認存放目錄,指存放非歸檔的web應用程序的目錄或歸檔的WAR文件目錄路徑;(2) autoDeploy:在Tomcat處于運行狀態時,將某webapp放置于appBase所定義的目錄中時,是否自動將其部署至tomcat;示例:<Host name=”tc1.magedu.com” appBase=”/appdata/webapps” unpackWARs=”true” autoDeploy=”true”></Host>
·Context組件:
示例:<Context path=”/PATH” docBase=”/PATH/TO/SOMEDIR” reloadable=””/>
·Valve組件:
<Valve className=”org.apache.catalina.valves.AccessLogValve” directory=”logs”prefix=”localhost_access_log” suffix=”.txt”pattern=”%h %l %u %t "%r" %s %b” />Valve存在多種類型:定義訪問日志:org.apache.catalina.valves.AccessLogValve定義訪問控制:org.apache.catalina.valves.RemoteAddrValve<Valve className=”org.apache.catalina.valves.RemoteAddrValve” deny=”172\.16\.100\.67″/>
manger應用程序:
·vim /etc/tomcat/tomcat-users.xml修改密碼即可登錄;
基本配置目錄:
1.HTTP反代Tomcat:
示例:<VirtualHost *:80>ServerName www.ilinux.ioProxyRequests OffProxyVia OnProxyPreserveHost On<Proxy *>Require all granted</Proxy>ProxyPass / http://www.ilinux.io:8080/ProxyPassReverse / http://www.ilinux.io:8080/<Location />Require all granted</Location></VirtualHost>
2.Nginx反代Tomcat:
示例:location / {proxy_pass http://www.ilinux.io:8080;}
3.Http集群反代:
示例:<proxy balancer://websrvs>BalancerMember http://172.16.42.2:8080BalancerMember http://172.16.42.3:8080ProxySet lbmethod=byrequests</Proxy><VirtualHost *:80>ServerName www.ilinux.ioProxyVia OnProxyRequests OffProxyPreserveHost On<Proxy *>Require all granted</Proxy>ProxyPass / balancer://tcsrvs/ProxyPassReverse / balancer://tcsrvs/<Location />Require all granted</Location></VirtualHost>
4.Nginx集群反代:
示例:upstream websrvs {server 172.16.42.2;server 172.16.42.3;}location / {proxy_pass http://websrvs;}
5.會話粘性:
#Nginx的會話粘性只要在upstream中添加(hash $request_uri consistent)即可,以下講HTTP的會話粘性;#在頂頭添加以下一行;Header add Set-Cookie “ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/” env=BALANCER_ROUTE_CHANGED<proxy balancer://websrvs>BalancerMember http://172.18.100.67:8080 route=TomcatA loadfactor=1BalancerMember http://172.18.100.68:8080 route=TomcatB loadfactor=2ProxySet lbmethod=byrequestsProxySet stickysession=ROUTEID</Proxy><VirtualHost *:80>ServerName lb.magedu.comProxyVia OnProxyRequests OffProxyPreserveHost On<Proxy *>Require all granted</Proxy>ProxyPass / balancer://websrvs/ProxyPassReverse / balancer://websrvs/<Location />Require all granted</Location></VirtualHost>
6.啟用管理接口:
#在以上代碼中,添加以下代碼即可;<Location /status-manager>SetHandler balancer-managerProxyPass !Require all granted</Location>
7.memcache會話保持:
1.在Tomcat主機下載好MSM;lftp 172.18.0.1:/pub/Sources/7.x86_64/msm> mget *2.在Tomcat主機的server.xml中的contxt中添加以下代碼;<Context path=”/test” docBase=”/usr/local/tomcat/webapps/test” reloadable=”true”><Manager className=”de.javakaffee.web.msm.MemcachedBackupSessionManager”memcachedNodes=”n1:172.16.42.2:11211,n2:172.16.42.3:11211″failoverNodes=”n1″requestUriIgnorePattern=”.*\.(ico|png|gif|jpg|css|js)$”transcoderFactoryClass=”de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory”/></Context>3.在memcache主機上yum安裝memcache;yum -y install memcache
原創文章,作者:z long,如若轉載,請注明出處:http://www.www58058.com/84230