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 14:07
下一篇 2017-08-08 14:37

相关推荐

  • 马哥教育网络班21期-第一次课程作业

    计算机组成部分及其作用 1.总线 电子管道,携带信息字节并在各个部件间传输。分为地址总线,数据总线,控制总线。 CPU最大可寻址范围:2^N*M,  N为地址总线数量,M为数据总线数量。 2.I/O设备 I/O设备及输入输出设备,最常见的输入设备就是我们非常熟悉的键盘,鼠标,我们通过我们通过这些设备向计算机传达指令,让计算机完成我们想要它完成的工作…

    Linux干货 2016-06-29
  • Linux文件及目录管理

    Linux 文件管理 1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示 目录管理类命令:mkdir,rmdir mkdir [OPTION]… DIRECTORY… -p:自动按需创建父目录; -v显示详细过程; -m MODE直接给定权限; rmdir 移除空目录 rmdir&nbs…

    Linux干货 2016-10-09
  • grep命令

    alias命令 直接输入 alias 命令会列出当前系统中所有已经定义的命令别名。 例一:列出当前系统中所有已经定义的命令别名。 [root@localhost ~]# alias alias cp=’cp -i’ alias egrep=’egrep –color=auto’ alias fgrep=’fgrep –color=auto’ alias …

    Linux干货 2016-01-09
  • 马哥教育网络班20期+第2周课程练习

    一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。     1、cat:用于连接文件并打印到标准输出设备上,常用来显示文件的内容         命令使用格式     &nb…

    Linux干货 2016-06-23
  • 认识DNS

    DNS全称是Domain Name System的简称,即域名系统。因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP/TCP协议之上,使用端口号53。 认识DNS 安装 创建一台DN…

    Linux干货 2016-12-07
  • haproxy 动静分离负载均衡、​stats页面实现​。

    实验环境:一台主机提供haproxy、nfs、mariadb,后端2台apache部署wordpress。 实验目的:haproxy使得动静分离、以及开启stats页面。 haproxy简单介绍 负载均衡的解决方案,支持4、7层,特点是单进程模型(可配置为多进程模型)单进程能支持非常大的并发链接数量(相比较其他软件)。 到今天,马哥课程中的负载均衡方案(lv…

    Linux干货 2017-02-18