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)
z longz long
上一篇 2017-08-08
下一篇 2017-08-08

相关推荐

  • 优云软件:双态运维下,老司机是怎么玩CMDB的?

    行业内有个科技公司,CMDB前后建设12年,重构了N次,一言不合就重构,我深深的被这种屡拆屡战,初心不改精神所折服。我真心想问下做CMDB的兄弟,各位是怎么熬过来的?请不要回避,其实我们都曾被这样虐过! 近几年我司承建国内很多传统行业的CMDB项目,坦白的说,随着互联网+热潮的冲击,因很多传统企业也慢慢的在转变业务,把很多传统型的业务互联网化,或者开辟新型业…

    2016-08-05
  • N22-第十四周作业

    系统的INPUT和OUTPUT默认策略为DROP; ~]# iptables -P INPUT DROP ~]# iptables -P OUTPUT DROP 1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的…

    Linux干货 2017-03-15
  • 26期全程班-第四周博客作业

      1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。  # cp -R /etc/skel /home/tuser1 # chmod -R go-rwx /home/tuser1/ 2、编辑/etc/group文件,添加组hadoop。 # echo &…

    Linux干货 2017-02-27
  • grep与正则表达式

    一、grep        grep常用于文本搜索。通过自定义的模式(pattern),筛选出使用者需要的文本内容。除了有grep,还有egrep和fgrep。其中egrep = grep  –E,而fgrep则是不支持正则表达式。     &nbs…

    2017-07-29
  • 关于文件系统备份、交换分区挂载等–中

    dd命令:convert and copy a file 用法: dd if=/PATH/FROM/SRC of=/PATH/TO/DEST  bs=#:block size, 复制单元大小 count=#:复制多少个bs  of=file 写到所命名的文件而不是到标准…

    Linux干货 2016-08-29
  • 高考作业

    1、简述TCP三次握手四次挥手过程及各过程中客户端和服务器端的状态。 TCP三路握手,作用为完成三次握手,主机A与主机B开始传送数据。 第一次握手:客户端A(状态为SYN_SEND)发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,服务器B(状态为LISTEN)由SYN=1知道,客户端A要求建立联机; 第二次握手:服务器B(…

    Linux干货 2016-06-22