Tomcat配置及原理

体系架构

在这里插入图片描述
图片来自 http://www.cnblogs.com/qq951785919/

核心组件

Server

Server:代表tomcat 实例,即表现出的一个java进程;监听在8005端口,只接收“SHUTDOWN”。各server监听的端口不能相同,因此,在同一物理主机启动多个实例时,需要修改其监听端口为不同的端口;

Service

Service:用于实现将一个或多个connector组件关联至一个engine组件;

Connector

一个Connector将在某个指定端口上监听客户请求,并将获得的请求交给Engine来处理,从Engine处获得回应并返回客户端

示例:
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

常用属性:

address:指定连接器监听的地址,默认为所有地址,即0.0.0.0; 可以自己指定
maxThreads:支持的最大并发连接数,默认为200;
port:监听的端口
protocol:连接器使用的协议,默认为HTTP/1.1,定义AJP协议时通常为AJP/1.3;
redirectPort:如果某连接器支持的协议是HTTP,当接收客户端发来的HTTPS请求时,则转发至此属性定义的端口;
connectionTimeout:等待客户端发送请求的超时时间,单位为毫秒,默认为60000,即1分钟;
enableLookups:是否通过request.getRemoteHost()进行DNS查询以获取客户端的主机名;默认为true; 进行反解的,可以设置为false
acceptCount:设置等待队列的最大长度;通常在tomcat所有处理线程均处于繁忙状态时,新发来的请求将被放置于等待队列中;

Engine组件

Engine组件:Servlet实例,即servlet引擎,其内部可以一个或多个host组件来定义站点; 通常需要通过defaultHost来定义默认的虚拟主机;

示例:
<Engine name="Catalina" defaultHost="localhost">
   ...
</Engine>

常用属性

defaultHost:默认的虚拟主机
name:Engine组件的名称,用于日志和错误信息记录时区别不同的引擎;

Host组件

Host组件:位于engine内部用于接收请求并进行相应处理的主机或虚拟主机

示例:
<Host name="localhost"  appBase="webapps"
		  unpackWARs="true" autoDeploy="true">
		  ...
</Host>

常用属性

appBase:此Host的webapps的默认存放目录,指存放非归档的web应用程序的目录或归档的WAR文件目录路径;可以使用基于$CATALINA_BASE变量所定义的路径的相对路径;
autoDeploy:在Tomcat处于运行状态时,将某webapp放置于appBase所定义的目录中时,是否自动将其部署至tomcat;
unpackWars:在启用此webapps时是否对WAR格式的归档文件先进行展开;默认为true

Context组件

Context组件:Context在某些意义上类似于路径别名

示例:
<Context path="/eshop" docBase="/e-shop/shopxx" reloadable="true"/>

#访问http://域名/eshop  真实路径/e-shop/shopxx

Valve组件

Valve组件:Valve类似于过滤器,用来拦截请求并在转至目标之前进行某种操作
Valve有许多类型这里常见的有2种

定义访问日志:org.apache.catalina.valves.AccessLogValve
定义访问控制:org.apache.catalina.valves.RemoteAddrValve 

Tomcat常见的配置

[root@Tomcat tomcat]# tree /usr/local/tomcat/conf/ -L 1
/usr/local/tomcat/conf/
├── Catalina
├── catalina.policy      ##  当使用-security选项启动tomcat时,用于为tomcat设置安全策略; 
├── catalina.properties  ##  Java属性的定义文件,用于设定类加载器路径,以及一些与JVM调优相关参数;
├── context.xml          ##  每个webapp都可以专用的配置文件,它通常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认配置;
├── jaspic-providers.xml ##  主要用于实现第三方JASPIC认证
├── jaspic-providers.xsd
├── logging.properties   ##  日志相关配置设置
├── server.xml           ##  Tomcat的主配置文件,包含Service, Connector, Engine, Realm, Valve, Hosts主组件的相关配置信息
├── tomcat-users.xml     ##  Realm认证时用到的相关角色,用户和密码等信息,Tomcat自带的manager默认会用到此文件;在Tomcat中添加/删除用户,以及为用户指定角色都将通过编辑这个文件实现
├── tomcat-users.xsd
└── web.xml              ##  每个webapp只有“部署”后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认部署相关的配置;

Tomcat常见的命令

[root@localhost tomcat]# ls /usr/local/tomcat/bin
bootstrap.jar                 configtest.bat    setclasspath.sh  tomcat-native.tar.gz
catalina.bat                  configtest.sh     shutdown.bat     tool-wrapper.bat
catalina.sh                   daemon.sh         shutdown.sh      tool-wrapper.sh
catalina-tasks.xml            digest.bat        startup.bat      version.bat
commons-daemon.jar            digest.sh         startup.sh       version.sh
commons-daemon-native.tar.gz  setclasspath.bat  tomcat-juli.jar

/usr/local/tomcat/bin放置许多命令文件,这里bat结尾的是Window系统用的,比较常用的有 catalina.shversion.shshutdown.shstartup.sh,值得注意的是catalina.sh几乎能调用/usr/local/tomcat/bin目录下所有脚本的功能

[root@localhost tomcat]# catalina.sh  --help
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Usage: catalina.sh ( commands ... )
commands:
  debug             Start Catalina in a debugger(debug模式启动)
  debug -security   Debug Catalina with a security manager
  jpda start        Start Catalina under JPDA debugger
  run               Start Catalina in the current window(在前台运行tomcat)
  run -security     Start in the current window with security manager(加载配置文件catalina.policy中的安全策略并前台模式运行)
  start             Start Catalina in a separate window(后台运行tomcat)
  start -security   Start in a separate window with security manager(加载配置文件catalina.policy中的安全策略并后台模式运行)
  stop              Stop Catalina, waiting up to 5 seconds for the process to end(停止tomcat,默认等待5秒后停止进程)
  stop n            Stop Catalina, waiting up to n seconds for the process to end(停止tomcat,等待ns后停止进程)
  stop -force       Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running(强制停止tomcat,如果5s后仍然运行则用kill命令杀死进程)
  stop n -force     Stop Catalina, wait up to n seconds and then use kill -KILL if still running(强制停止tomcat,如果ns后仍然运行则用kill命令杀死进程)
  configtest        Run a basic syntax check on server.xml - check exit code for result (检查主配置文件语法是否有错误)
  version           What version of tomcat are you running?(查看tomcat版本)
Note: Waiting for the process to end and use of the -force option require that $CATALINA_PID is defined
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值