Tomcat介绍

说明:本文章围绕着几个问题,讲述Tomcat的一些配置。

1.Tomcat是什么?

2.Tomcat都有什么目录?重要的配置文件有那些?主要做什么用?

3.Tomcat为什么使用8080端口访问,为什么一般不用80端口?

问题1答案:

        Tomcat是由Apache开发的一个Servlet容器,它对servlet和jsp进行了支持,并提供了web容器的特有支持。

        Tomcat本身是一个Http服务器,它也可以被认为本身是一个HTTP服务器。但Tomcat不能和HTTP协议混为一团,

Apache的HTTP协议是c语言实现的Http web服务器,这两个服务不能捆绑在一起。

问题2答案:

        /bin :主要存放Tomcat脚本目录的

               例如:startup.sh(Linux上启动命令,Windows上.bit文件是)

                         shutdown.sh(Linux上关闭命令,Windows上.bit文件是)

                         version.sh(查看Tomcat版本命令)

                         catalina.sh(像启动命令,关闭命令,查看版本命令等都会依赖这个脚本实现)

        /lib :主要是Tomcat依赖的一些jar包

        /work :工作目录

        /temp :临时文件目录

        /webapps :项目的发布目录

        /log :日志文件目录,这个是默认日志存放的位置

                Tomcat的日志信息分为两种:

                   1.运行日志,它主要记录一些运行信息,尤其是一些运行异常信息,这个就在之前的service.xml中配置

                        在<Host>标签中加入

                        <!--日志路径路径-->
                        <Valve className="org.apache.catalina.valves.AccessLogValve"
                                directory="/home/yunweizp/projectlogs/zixunweblog/access"  prefix="access" suffix=".log"

                      pattern="%t %h %l &quot;%r&quot; %s %b &quot;%{Referer}i&quot; &quot;%{User-Agent}i&quot;                             &quot;%q&quot; &quot;%D&quot;" fileDateFormat="yyyy-MM-dd-HH" resolveHosts="false"/>

                     AccessLogValve这个类是用来创建日志的,他主要创建的是运行日志。
                     directory是创建运行日志存放的位置。
                     prefix是日志文件名称
                     suffix是日志文件是什么后缀名
                     pattern是日志要记录的文件内容格式。
                     fileDateFormat是日志文件名称使用定制的日期格式,同时也决定了日志的翻转频率,
                    resolveHosts将远端主机的IP地址通过DNS查询转换成主机名,设为true。如果为false,忽略DNS查询,报告远端的IP地址

                   2.访问日志,它会记录一些访问服务器的信息,如时间,IP等。

        /conf :配置文件,这里主要说service.xml文件。

          Server:元素是最顶级元素,代表了整改Tomcat容器,shutdown是表示关闭Server的指 令,port属 性表示Server接 收 shutdown指令的端口号。

        Service:它是在Connector和Engine外面包了一层,把他们组装到一起,对外提供服务。一个Service可以包多个Connector,但是只能包一个Engine,其中Connector是从客户端接收请求的,Engine是处理接收进来的请求的。

          Connector:它的功能是接收请求,创建Request和Response对象,用于和请求端交换数据,然后分配线程让Engine来处理这个请求,并把产生的Request和Response对象传给Engine。所以我们可以通过Connector控制service的协议和端口。<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>这个配置的意思是:客户端可以通过8080端口号,使用http协议访问Tomcat,其中port规定了请求的端口号,protocol属性规定了请求的协议,rectPort属性规定了要强制请求HTTPS协议而请求http协议时,重定向至端口号为8443的Connector,connectionTimeout表示链接的超时时间。

                            在上面的配置中,Tomcat监听http请求,使用的端口号是8080而不是80,在正式的环境中,Tomcat监听的也是8080端口,这是在生产环境中也很少对外开放请求接收。而是在Tomcat和客户端之间加一层代理服务(如NGINX),用于请求转发,负责均衡,处理静态文件等。通过代理服务器访问Tomcat时,是在局域网中,因此一般也使用8080端口。

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

客户端通过8009端口使用AJP协议访问Tomcat,AJP协议负责和其他的HTTP服务器(如Apache)建立连接,在把Tomcat与其他HTTP集成时,就需要这个连接器。之所以使用Tomcat和Apache等集成,前者做为servlet容器,后者处理静态资源,二AJP协议便负责Tomcat和Apache的连接。

      Engine:Engine组件在service组件中有且只有一个,Engine是service组件中的请求处理组件,Engine组件从一个或多个Connector中请求处理,并将完成后的响应返回给Connector,最终传递给客户端。前面已经提到过,Engine,Host和Context都是容器,但是他们不是平行关系,而是父子关系,Engine包含了Host,Host包含了Context。

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">     </Host>

                  Host是虚拟主机的作用 ,运行多个web应用(一个Context代表一个web应用),并负责安装,展开,启动和结束每个web应用。

                   name属性指定虚拟机的主机名,一个Engine中有且仅有一个Host组件的name属性与Engine组件中的defaultHost属性相匹配。

                unpackWARs指定是否代表web应用的war文件解压,如果true,通过解压后的文件结构运行web应用,如果为false,直接使用war文件运行web应用。

                   autoDeploy和appBase与部署有关。

    <!--部署工程路径--><Context path="" docBase="/home/yunweizp/projectdatas/zixunweb/ROOT" reloadable="ture" allowLinking="true"/>

            context元素最重要的两个属性docBase和path

            path指定访问web应用的上线问路径,请求到来时,Tomcat根据web应用的path与URL匹配程度来选择web应用处理相应的请求

            docBase是web应用的war包路径,也就是项目的应用目录。






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值