javaGrowing

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  92 随笔 :: 33 文章 :: 49 评论 :: 0 Trackbacks

#

server.xml配置简介 
下面我们将讲述这个文件中的基本配置信息,更具体的配置信息见tomcat的文档 
server: port    指定一个端口,这个端口负责监听关闭tomcat的请求
shutdown    指定向端口发送的命令字符串
service: name    指定service的名字
Connector    (表示客户端和service之间的连接):
port    指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求
minProcessors    服务器启动时创建的处理请求的线程数
maxProcessors    最大可以创建的处理请求的线程数
enableLookups    如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址
redirectPort    指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
acceptCount    指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
connectionTimeout    指定超时的时间数(以毫秒为单位)
Engine    (表示指定service中的请求处理机,接收和处理来自Connector的请求):
defaultHost    指定缺省的处理请求的主机名,它至少与其中的一个host元素的name属性值是一样的
Context    (表示一个web应用程序,通常为WAR文件,关于WAR的具体信息见servlet规范):
docBase    应用程序的路径或者是WAR文件存放的路径
path    表示此web应用程序的url的前缀,这样请求的url为http://localhost:8080/path/****
reloadable    这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib和/WEB-INF/classes目录的变化,自动装载新的应用程序,我们可以在不重起tomcat的情况下改变应用程序
host    (表示一个虚拟主机):
name    指定主机名
appBase    应用程序基本目录,即存放应用程序的目录
unpackWARs    如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序
Logger    (表示日志,调试和错误信息):
className    指定logger使用的类名,此类必须实现
org.apache.catalina.Logger    接口
prefix    指定log文件的前缀
suffix    指定log文件的后缀
timestamp    如果为true,则log文件名中要加入时间,如下例:localhost_log.2001-10-04.txt
Realm    (表示存放用户名,密码及role的数据库):
className    指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口
Valve    (功能与Logger差不多,其prefix和suffix属性解释和Logger中的一样):
className    指定Valve使用的类名,如用org.apache.catalina.valves.AccessLogValve类可以记录应用程序的访问信息
directory    指定log文件存放的位置
pattern    有两个值,common方式记录远程主机名或ip地址,用户名,日期,第一行请求的字符串,HTTP响应代码,发送的字节数。combined方式比common方式记录的值更多
注意: 
1:经过我测试,我设置Context 的path="",reloadable=true,然后放一个WAR文件到webapps目录,结果tomcat不能检测出此文件(重起tomcat可以),而把此文件解压,则tomcat会自动检测出这个新的应用程序。如果不能自动检测WAR文件,我们可以利用下面管理中讲的方法来部署应用程序。 
2:默认的server.xml中,Realm元素只设置了一个className属性,但此文件中也包含几个通过JDBC连接到数据库进行验证的示例(被注释掉了),通过Realm元素我们可以实现容器安全管理(Container Managed Security)。 
3:还有一些元素我们没有介绍,如Parameter,loader,你可以通过tomcat的文档获取这些元素的信息。 

posted @ 2006-05-13 12:52 javaGrowing 阅读(510) | 评论 (0)编辑 收藏

1. 如何加大tomcat连接数

在tomcat配置文件server.xml中的<Connector ... />配置中,和连接数相关的参数有:
minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75
acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100
enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
connectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。

其中和最大连接数相关的参数为maxProcessors和acceptCount。如果要加大并发连接数,应同时加大这两个参数。


web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。Unix中如何设置这些参数,请参阅Unix常用监控和管理命令

tomcat4中的配置示例:
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8080" minProcessors="10" maxProcessors="1024"
enableLookups="false" redirectPort="8443"
acceptCount="1024" debug="0" connectionTimeout="30000" />

对于其他端口的侦听配置,以此类推。

2. tomcat中如何禁止列目录下的文件
在/conf/web.xml中,把listings参数设置成false即可,如下:
<servlet>
...
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
...
</servlet>

3. 如何加大tomcat可以使用的内存

tomcat默认可以使用的内存为64MB,在较大型的应用项目中,这点内存是不够的,需要调大。

Unix下,在文件/bin/catalina.sh的前面,增加如下设置:
JAVA_OPTS='-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】'
需要把这个两个参数值调大。例如:
JAVA_OPTS='-Xms256m -Xmx512m'
表示初始化内存为256MB,可以使用的最大内存为512MB

4. 如何添加默认访问页面
修改文件web.xml,在welcome-list里面添加index.wml作为默认的访问页面
<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

posted @ 2006-05-13 12:49 javaGrowing 阅读(290) | 评论 (0)编辑 收藏

例如你要控制对ROOT目录下文件的访问:首先更改$TOMCAT_HOME/ROOT/WEB-INF/web.xml

  1.在<web-app>和</web-app>之间加入

  <security-constraint>
  <web-resource-collection>
  <web-resource-name>Entire Application</web-resource-name>
  <url-pattern>/*</url-pattern>
  </web-resource-collection>
  <auth-constraint>
  <!-- NOTE: This role is not present in the default users file -->
  <role-name>user</role-name>
  </auth-constraint>
  </security-constraint>

  <!-- Define the Login Configuration for this Application -->
  <login-config>
  <auth-method>BASIC</auth-method>
  <realm-name>TEST ACCESS CONTROL</realm-name>
  </login-config>

  2.然后在$TOMCAT_HOME/conf/tomcat-users.xml中加入
  
  <user name="user" password="password" roles="user"/>
  roles的名字和web.xml中的相对应

  在TOMCAT4.03中测试通过 

posted @ 2006-05-13 12:29 javaGrowing 阅读(310) | 评论 (0)编辑 收藏

首先安装tomcat时候最好选择zip打包方式直接解压到某个目录!

打开{tomat}/bin/service.bat,找到如下一行

"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp" --JvmMs 128 --JvmMx 256

知道怎么做了嘛?把128和256替换成你想要的值,例如初始内存256,最大内存512。第一个数值是初始内存大小,单位是兆,第二个数值是最大内存!

修改完保存该文件后执行如下命令来安装服务

service install {service_name}

{service_name}替换成你想

posted @ 2006-05-13 11:58 javaGrowing 阅读(753) | 评论 (0)编辑 收藏

当我们需要将多个域名同时指向同一个应用,而且要求不能跟Tomcat默认的应用冲突时怎么办? 今天 小红帽 问起这个问题,顺便研究了一下,可以通过下面配置来实现

<Host name="javayou.com" appBase="webapps"
       unpackWARs="true" autoDeploy="false"
       xmlValidation="false" xmlNamespaceAware="false">
       <Alias>www.javayou.com</Alias>
       <Alias>wap.javayou.com</Alias>
       <Context path="" docBase="C:\PROJECTS\JAVA\DLOG4J_V3\webapp" reloadable="true"/>
</Host>

上面的例子把三个域名分别是 javayou.com, www.javayou.com, wap.javayou.com 都指到了dlog这个应用。

当然了,如果你的Tomcat只跑一个应用那就不用那么费劲了,把name设置为localhost就搞定了,别说是三个域名了,三万个也没问题啊。

posted @ 2006-05-13 11:53 javaGrowing 阅读(879) | 评论 (0)编辑 收藏

仅列出标题
共19页: First 上一页 8 9 10 11 12 13 14 15 16 下一页 Last