转载请出自出处:http://eksliang.iteye.com/blog/2097184
1.-------------------------------------------tomcat 目录结构
- config:存放tomcat的配置文件
- temp :存放tomcat跑起来后存放临时文件用的
- work : 当第一次访问应用中的jsp文件时,tomcat首先会用这个jsp文件生成servlet的java文件,然后将其编译成.classes,存放在这个目录
- webapps : web应用默认存放的目录
- temp
- logs:存放tomcat的日志目录
- lib :存放tomcat的jar文件
2.-------------------------------------------tomcat部署的几种方式
直接把应用拷贝到{TOMCAT_HOME}/webapps下面,启动tomcat就可以
这种默认的部署方式就不多说了
- 虚拟目录安装第一种:
进入{TOMCAT_HOME}/conf目录中,修改server.xml
在<host/>节点中添加(如果是多个项目,可以写多个)
<Context path="/hello" docBase="G:/display/test.war" debug="0" privileged="true"></Context>
参数含义:
- path:指定访问该Web应用的名称
- docBase:指定Web应用的文件路径;如果是war包,必须加上后缀
- reloadable:如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动, 如果监测到有class文件被更新的,服务器会自动重新加载Web应用,(设置为true,则Tomcat将支持热部署,会自动检测web的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的JSP和Servlet,我们可以在不重起Tomcat的情况下改变web)
2、虚拟目录安装第二种:
在{TOMCAT_HOME}/conf/catalina/localhost目录下新建xml,名字可以随便(没有就创建这个目录,注意大小写)
在文件中加入如下内容:
<Context path="/hello" docBase="G:/display/test" debug="0" privileged="true"></Context>
参数的含义,跟上面第一种是一样
注意事项:
1.新建的xml文件的名称,将作为访问应用的名称,这里的path将没有意义:建议改成如下
<Context docBase="G:/display/test" debug="0" privileged="true"></Context>
2.如果有多个应用,那么就配置多个xml,记住一个xml中只可以有一个Context
3.如果应用启动了,如果再加入xml文件,应用会动态被tomcat加载
虚拟目录安装比较:
虚拟目录1和虚拟目录2最大的区别在于:第一种方式如果tomcat启动了,再加入Context,那么tomcat必须重新启动才能加载应用
第二种种方式如果tomcat启动了,再加入xml文件,tomcat会在运行时动态加载应用
3.-------------------------------------------service.xml简单说明:
注意如下:
- server.xml是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载
<Server port="8005" shutdown="SHUTDOWN"> port:指定一个端口,这个端口负责监听关闭Tomcat的请求
<Service name="Catalina"> <!--Connector - port:连接tomcat服务器的端口号,用来侦听客户端的请求 - protocol:协议,例如下面的protocol="HTTP/1.1" 就是http协议,说明此端口是用来侦听http协议的端口 - connectionTimeout:等待超时的时间数(以毫秒为单位)(default=”60000″) - redirectPort:服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号, 所有的Connector设定建议相同,这样就可以统一处理 - enableLookups:如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端 的实际主机名;若为false则不进行DNS查询,而是返回其ip地址 - acceptCount:当所有可以使用的,处理请求的线程都被用光时,可以放到处理队列中的请求数,超过这个数 的请求将不予处理,而返回Connection refused错误 - maxThreads:设定在监听端口的线程的最大数目,这个值也决定了服务器可以同时响应客户请求的最大数目.默认值为200 - address:连接器所绑定的IP地址,当一台服务器存在多个ip地址时可以指定其中的需要绑定的一个, 默认不设置该属性的值表示绑定当前服务器的所有ip地址 - minProcessors:服务器启动时创建的处理请求的线程数,每个请求由一个线程负责 - maxProcessors:最多可以创建的处理请求的线程数 - minSpareThreads:最小备用线程 - maxSpareThreads:最大备用线程 - maxPostSize:(default=2097152 即2MB) 最大允许 POST 上传的数据大小(单位为:字节),对于一般网站来说, 比如有写评论写文章的网站,默认的2MB已经足够,不过如果网站带有图片甚至文件上传功能,则需要根据具体情况来定。 - debug:日志等级 - disableUploadTimeout:禁用上传超时,主要用于大数据上传时 - (像solr服务器通常是要中文的,必须配置)配置tomcat支持URL中文参数,只需添加Connector的URIEncoding参数即可,默认情况下该参数未被配置。 要支持URL参数支持中文,加上URIEncoding="UTF-8"就行了 --> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <!-- Engine - 每个Service元素只能有一个Engine元素 - name:对应$CATALINA_HOME/config/Catalina中的Catalina - localhost:对应Host元素中的name属性,也就是和$CATALINA_HOME/config/Catalina/localhost中的localhost --> <Engine name="Catalina" defaultHost="localhost"> <!-- Realm - --> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <!-- Host - appBase:就是设置web应用的存放位置,默认为webapps - unpackWARs:如果为true,则tomcat会自动将WAR文件解压;否则不解压,直接从WAR文件中运行应用程序 - autoDeploy:默认为true,表示如果有新的WEB应用放入appBase 并且Tomcat在运行的情况下,自动载入应用 --> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context path="/solr" docBase="D:/display/solr.war" debug="0" privileged="true"> <Environment name="solr/home" type="java.lang.String" value="D:/display/home" override="true"/> </Context> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host> </Engine> </Service>
4.-------------------------------------------web.xml简单说明:
1.默认(欢迎)文件的设置,代码如下:
<welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
2.回话超时设置(单位/分钟)
<session-config> <session-timeout>30</session-timeout> </session-config>
2.如下节点的说明
<servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
把false改为true,如果等于false访问http://IP:8080/search/update/,那么是不能访问webapp下面的目录结构:--默认为fasle
5.-------------------------------------------tomcat-users.xml简单说明
tomcat权限
<role rolename="manager"/> <role rolename="manager-gui"/> <role rolename="admin"/> <role rolename="admin-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="admin" password="admin123" roles="admin-gui,admin,manager-gui,manager,manager-script,manager-jmx,manager-status"/>