tomcat配置詳解

主程序:

·tomcat
·tomcat-admin-webapps
·tomcat-webapps
·tomcat-docs-webapp
·java-1.8.0-openjdk

配置文件:

配置文件目錄:/etc/tomcat
主配置文件:server.xml
webapps存放位置:/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 –> tomcat
httpd(proxy_http_module) –> http connector –> tomcat
httpd(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 &quot;%r&quot; %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

修改密碼即可登錄;

tomcat配置詳解

基本配置目錄:

1.HTTP反代Tomcat:
2.Nginx反代Tomcat:
3.Http集群反代:
4.Nginx集群反代:
5.會話粘性:
6.啟用管理接口:
7.memcache會話保持:

1.HTTP反代Tomcat:

示例:
<VirtualHost *:80>
ServerName www.ilinux.io
ProxyRequests Off
ProxyVia On
ProxyPreserveHost 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:8080
BalancerMember http://172.16.42.3:8080
ProxySet lbmethod=byrequests
</Proxy>
<VirtualHost *:80>
ServerName www.ilinux.io
ProxyVia On
ProxyRequests Off
ProxyPreserveHost 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=1
BalancerMember http://172.18.100.68:8080 route=TomcatB loadfactor=2
ProxySet lbmethod=byrequests
ProxySet stickysession=ROUTEID
</Proxy>
<VirtualHost *:80>
ServerName lb.magedu.com
ProxyVia On
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Require all granted
</Proxy>
ProxyPass / balancer://websrvs/
ProxyPassReverse / balancer://websrvs/
<Location />
Require all granted
</Location>

</VirtualHost>

6.啟用管理接口:

#在以上代碼中,添加以下代碼即可;
<Location /status-manager>
SetHandler balancer-manager
ProxyPass !
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

(1)
z longz long
上一篇 2017-08-08
下一篇 2017-08-08

相關推薦

  • N25期第四周作業

    1.復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限 cp -r /etc/skel /home/tuser1 chmod -R go= /home/tuser1 2.編輯/etc/group文件,添加組hadoop echo “hadoop:x:1080” >> /…

    Linux干貨 2016-12-26
  • ?Ansible

    Ansible ansible簡介 安裝ansible 使用ansible前提條件 主要文件 配置文件 Host Inventory ansible.cfg 命令使用 ansible ansible-doc ansible-playbook 常用模塊 ansible各模塊簡單示例 ansible playbooks playbook內容組成 host、use…

    Linux干貨 2016-11-06
  • 淺談HTTP協議以及httpd的十八般武藝

      初識HTTP協議                HTTP(hyper text transfer protocal)作為互聯網應用最廣泛的協議,任何一個運維人員都無法回避它,HTTP的目的就是提供一種發布和…

    Linux干貨 2016-02-14
  • 六.Linux博客-2016年8月2日用戶、權限

    格式說明: 操作 概念 命令 說明及舉例 六.用戶、權限 創建用戶、修改用戶、刪除用戶 useradd 創建一個用戶 useradd -r 創建系統用戶,系統用戶不創建家目錄 useradd -D /etc/default/useradd 默認設置配置文件 newusers +文件 批量創…

    Linux干貨 2016-08-24
  • vim、crontab、bash for循環練習

    1、復制/etc/rc.d/init.d/functions文件至/tmp目錄,將/tmp/functions文件中的以至少一個空白字符開頭的行的行首加#。 vim中支持全文查找替換功能且在查找時支持正則表達式,在替換時進行引用。先使用vim /tmp/functions,然后在vim編輯模式中輸入:%s/\(^[[:space:]]\+\)/#\1/g再回…

    系統運維 2016-12-03
  • Shell腳本的編寫

    1.什么是Shell腳本 Shell腳本是利用 shell 的功能所寫的一個程序 program,這個程序是使用純文本文件,將一些 shell 的語法與指令(含外部指令)寫在里面, 搭配正則表達式、管線命令與數據流重導向等功能,以達到我們所想要的處理目的。 Shell 腳本可以簡單的被看成是批處理文件, 也可以被說成是一個程序語言,且這個程序語言由于都是利用…

    Linux干貨 2017-04-16
欧美性久久久久