您的位置:首页 > 运维架构 > Tomcat

Tomcat服务器详解

2015-11-18 13:52 447 查看
Tomcat 服务器是javaEE项目使用最广泛的服务器之一,并且还是免费的。所以Tomcat现如今拥有大片的追捧者。

首先需要下载一个Tomcat服务器,我这里有一个免安装版本的, 下载地址:http://download.csdn.net/detail/ch656409110/4434470

打开服务器目录,在根目录里面有backup,bin,conf,lib,logs,temp,webapps,work等目录。接下来依个介绍。

1、backup

打开发现和conf 里面的文件一样,但是内容不一样。

这是因为使用eclipse绑定tomcat之后在Project Explorer 窗口创建了一个Server项目,每次修改配置都会在这里修改,为了方面起见,eclipse 在tomcat的根目录创建了 一个备份配置的文件backup。这个时候如果直接修改conf下面的配置会被eclpse覆盖掉,因为它认准的是D:\myProject\Servers 这里面的配置。

2、bin

顾名思义,可执行文件的目录,里面放着tomcat服务器所有的执行服务。最常用的有

catalina.bat ,startup.bat,shutdown.bat  等等,另外这些bat后缀的命令是在windows系统下执行的,sh后缀的命令是在Linux系统下执行的。

现在以Windows环境为例:

<1>catalina.bat 是核心文件,执行之后的效果如下:



一般的,如果没有配置java环境变量,但是又想使用tomcat,那么可以在该文件的顶部加上 set JAVA_HOME="D:\Program Files\Java\jdk1.6.0_12" 就好了,如果使用tomcat经常性的内存溢出,那么需要加大tomcat的最大使用内存,可以在该文件的顶部加上 set CATALINA_OPTS=-Xms512m -Xmx1048m -XX:PermSize=128m -XX:MaxPermSize=400m  就好了。

所以catalina.bat 是非常核心的文件

<2>startup.bat 是启动服务器的命令,效果如下:



<3>shutdonw.bat 是关闭服务器的命令,效果如下:



<4>service.bat 是创建service的服务,到时候可以在服务列表中看到。

直接打开service命令,效果如下:



可见缺少参数,install 或者 remove 服务以及服务名称

俺就要通过cmd命令实现了

效果如下:



然后 Ctrl + R 打开引用,输入“services.msc” 打开服务管理器,可以找到 刚刚创建的tomcat7.022服务,效果如下:



然后删除该服务同样的方式使用remove关键字就好了。

<5>version.bat

看见名字就知道是查看tomcat的版本信息,效果如下:



3、conf

这里面存在的是Tomcat服务器的所有配置信息,常用的配置文件有:context.xml,server.xml,web.xml等等。

<1>context.xml

context.xml是上下文配置,一般在这里面控制权限,或者数据源等等信息,比如:

[html]
view plaincopyprint?

<Context privileged="true" reloadable="true" >  
  
    <!-- Default set of monitored resources -->  
    <WatchedResource>WEB-INF/web.xml</WatchedResource>  
  
    <!-- Uncomment this to disable session persistence across Tomcat restarts -->  
    <!-- 
    <Manager pathname="" /> 
    -->  
  
    <!-- Uncomment this to enable Comet connection tacking (provides events  
         on session expiration as well as webapp lifecycle) -->  
    <!-- 
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" /> 
    -->  
     <Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" maxActive="100" maxIdle="30" maxWait="10000" name="jdbc/facelook" password="123456" type="javax.sql.DataSource" url="jdbc:oracle:thin:@localhost:1521:ORCL" username="facelook"/>  
  
</Context>  

<Context privileged="true" reloadable="true" >

<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>

<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->

<!-- Uncomment this to enable Comet connection tacking (provides events
on session expiration as well as webapp lifecycle) -->
<!--
<Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
-->
<Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" maxActive="100" maxIdle="30" maxWait="10000" name="jdbc/facelook" password="123456" type="javax.sql.DataSource" url="jdbc:oracle:thin:@localhost:1521:ORCL" username="facelook"/>

</Context>
<2>server.xml

server.xml主要用于配置tomcat服务器的服务中各种连接配置,另外还有引擎下部署虚拟目录发布项目等等。

关于连接配置,要在<Connector>这里修改,具体如下:

[html]
view plaincopyprint?

<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>  

<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>


关于部署虚拟目录,要在<Engine>下的<Host>下增加<Context>,具体如下:

[html]
view plaincopyprint?

<Context docBase="D:\myProject\jeecms\WebContent" path="/jeecms" reloabable="true"/>  

<Context docBase="D:\myProject\jeecms\WebContent" path="/jeecms" reloabable="true"/>


这里必须指向WebContent根目录,因为WEB-INF在WebContent的根目录。

<3>tomcat-user.xml

tomcat-user.xml这里面配置了用户权限信息,如果配置好了可以在tomcat欢迎页面管理发布的项目。但是一般默认配置不起作用,登录进去直接403禁止访问,后来才知道指定的权限不够,重新分配下权限就好了,比如:

[html]
view plaincopyprint?

<role rolename="manager-gui"/>   
<role rolename="manager-script"/>   
<role rolename="manager-jmx"/>   
<role rolename="manager-status"/>  
<role rolename="admin-script"/>   
<role rolename="admin-gui"/>   
<user username="chenghui" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>   

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-script"/>
<role rolename="admin-gui"/>
<user username="chenghui" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>
修改配置之后在访问 就没问题了,效果如下:



<4>web.xml

web.xml 和javaEE项目一样,同样属于核心配置,里面绑定了jsp,servlet,shtml ,welcome file 等等的配置。

4、logs

tomcat服务器在运行的过程中产生的所有日志都在logs目录下,详见的日志类型如下:

比如:commons-daemon.2013-08-04.log记录的是刚刚创建tomcat7.0.22服务产生的日志,具体如下:



比如:localhost_access_log.2013-08-04.txt 记录的是用户访问的页面信息情况,具体如下:



比如:catalina.2013-08-04.log 记录的是项目运行时候所有的信息,报错控制台输出,抛出的异常,记录的日志等等,具体如下:



5、temp

temp 目录存放的是临时目录。

6、webapps

webapps 存放的是发布的实际项目,比如之前访问的欢迎页面也在里面。这个没什么要说的,只要保证项目没有问题,在部署的时候就会正常运行。

7、work

work目录存放的是 tomcat在运行过程中显示的jsp翻译成jsp和 编译成class的文件。效果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tomcat