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.178linux.com/84230

(1)
上一篇 2017-08-08 14:07
下一篇 2017-08-08 14:37

相关推荐

  • 文本处理三剑客之sed

    文本处理三剑客之sed sed概述 sed使用示例 sed的高级应用 sed概述 sed, 作为文本三剑客之一,其定位就是一个编辑器, 而且sed是一个流式编辑器(stream editor),其主要功能是过滤和转换文本。 sed – stream editor for filtering and&…

    Linux干货 2016-08-12
  • Python函数式编程指南(四):生成器

    生成器是迭代器,同时也并不仅仅是迭代器,不过迭代器之外的用途实在是不多,所以我们可以大声地说:生成器提供了非常方便的自定义迭代器的途径。 这是函数式编程指南的最后一篇,似乎拖了一个星期才写好,嗯…… 转载请注明原作者和原文地址:) 4. 生成器(generator) 4.1. 生成器简介 首先请确信,生成器就是一种迭代器。生成器拥有next方法并且行为与迭代…

    Linux干货 2015-03-11
  • EXT4文件系统的初步使用

    文件系统的类型多种多样,我们接触得比较多的当属Windows系统上的FAT32和NTFS。 而EXT文件系统(Extended filesystem)则是linux上常见的文件系统类型。 目前最新的版本是ext4,常见于CentOS6之中。 1.查看当前系统中有没有挂载使用中的EXT4文件系统,可以使用mount命令: 2.如何创建一个EXT4的文件系统(f…

    系统运维 2016-02-14
  • heartbeatV1+nfs实现高可用httpd

        随着互联网技术的不断发展,Web应用也越来越普遍,Web服务器的无故障工作时间就显得尤重要,但由于各种各样的原因,一台服务器并不能保证永远不出问题的运行,此时就需要一种机制来实现多台服务器共同为相同的来务功能提供服务,以确保任意一台服务器宕机后,不会影响其所承载的业务的访问。   &nbsp…

    Linux干货 2015-06-26
  • 文本处理三剑客之sed

    文本处理三剑客之sed 一、处理文本的工具sed 概念: Stream EDitor, 行编辑器 v sed是一种流编辑器,它一次处理一行内容。处理时,把 当前处理的行存储在临时缓冲区中,称为“模式空间”( pattern space),接着用sed命令处理缓冲区中的内容 ,处理完成后,把缓冲区的内容送往屏幕。接着处理下一 行,这样不断重复,直到文件末尾。文…

    Linux干货 2016-08-12
  • N26-第二周

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。(盗图了,哈哈哈) 文件查看类命令:cat, tac, head, tail, more, less,touch    cat 查看文件内容   tac命令   反向查看文件内容  注:可对照上图 分屏查看命令:more  …

    Linux干货 2017-01-07