我的2007

态度决定高度,努力造就实力!

用户操作
[即时聊天] [发私信] [加为好友]
wuzhijie ID:zhijie435
46922次访问,排名2362好友0人,关注者0
zhijie435的文章
原创 89 篇
翻译 0 篇
转载 123 篇
评论 7 篇
最近评论
Cheng Chi:Agree!!根据我的一些测试经验,给兄弟加点料:
在以前跟同事讨论中也谈到这个话题,不过我的题目是“How to Keep Performance test simple, and Why?”
模拟真实环境的测试是需要的,但不是必须的,最好在项目接近结束时,进行一次全面的测试,并且进行压力测试以及长时间稳定性测试。
在相对简单甚至简陋的环境中进行性能测试,可以……
fg:高压带电显示装置
LED显示屏
磁钢
磁性……
elixirzhang:请问jdbc能实现compass增量么
masterkey:不错
dongwei:返回结果怎么才能用ec:分页?求助
文章分类
收藏
    相册
    我和儿子-悠悠的照片
    java技术
    SpringSide江南白衣
    web项目经理手册
    一个大学同学的blog
    一个年轻有为但略有缺点的老板同事
    一位老领导的个人网站
    不知何人,有些文章很经典
    低头赶路,抬头看天:现在公司老总的博客
    我的java老师的blog
    此人很“牛”
    老师换地方了
    职业生涯顾问Leo的专栏
    道理事,德处人;人脉和,事脉顺-专门讨论业务建模问题(还没来得及细看)
    项目管理(其他篇)
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky

    转载 Tomcat5.5.x配置技巧收藏

    新一篇: Compass 指南 | 旧一篇: 用Spring Web Flow和Terracotta搭建Web应用

    Tomcat5.5.x配置整理
    1.下载:
    http://www.eu.apache.org/dist/jakarta/tomcat-5/
    http://www.apache.org/dist/jakarta/tomcat-5/v5.5.x/bin/jakarta-tomcat-

    5.5.x-admin.zip
    http://www.apache.org/dist/jakarta/tomcat-5/v5.5.x/bin/jakarta-tomcat-

    5.5.x-compat.zip
    http://www.apache.org/dist/jakarta/tomcat-5/v5.5.x/bin/jakarta-tomcat-

    5.5.x.zip
    http://www.apache.org/dist/jakarta/tomcat-5/v5.5.x/bin/jakarta-tomcat-

    5.5.x-deployer.zip
    把jakarta-tomcat-5.5.x.zip
    和jakarta-tomcat-5.5.x-compat.zip
    和jakarta-tomcat-5.5.x-admin.zip
    (Tomcat 默认是没有内置admin模块了
    Tomcat's administration web application is no longer installed by

    default. Download and install the "admin" package to use it. )
    都解压到同一个目录下面。比如:D:\jakarta-tomcat-5.5.x\
    (如果使用jdk1.4,才需要compat.zip用jdk1.5就可以免了这个。)
     
    2.修改jakarta-tomcat-5.5.x\conf\tomcat-users.xml.
    添加管理员账号lizongbo,密码为lizongbopass.
    新xml如下:
    <?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
      <role rolename="tomcat"/>
      <role rolename="role1"/>
      <role rolename="manager"/>
      <role rolename="admin"/>
      <user username="tomcat" password="tomcat" roles="tomcat"/>
      <user username="role1" password="tomcat" roles="role1"/>
      <user username="both" password="tomcat" roles="tomcat,role1"/>
      <user username="lizongbo" password="lizongbopass"

    roles="admin,manager"/>
    </tomcat-users>
     
    3.修改jakarta-tomcat-5.5.x\conf\server.xml来解决编码问题。
    (给Connector 添加URIEncoding参数,参考

    http://blog.csdn.net/darkxie/archive/2004/10/25/TOMCATAPP.aspx)
    (可以设置成GB18030)
        <Connector port="8080"
                   maxThreads="150" minSpareThreads="25"

    maxSpareThreads="75"
                   enableLookups="false" redirectPort="8443"

    acceptCount="200"
                   connectionTimeout="20000" disableUploadTimeout="true"

    URIEncoding="GBK"
                   compression="on" compressionMinSize="2048"
          noCompressionUserAgents="gozilla, traviata"
          compressableMimeType="text/html,text/xml"/>
     
        <Connector port="8009"
                   enableLookups="false" redirectPort="8443"

    protocol="AJP/1.3" URIEncoding="GBK"/>
     

    4.启用支持gzip压缩.
    (http://www.linuxaid.com.cn/forum/showdoc.jsp?l=1&i=81169)
    添加下列属性
     compression="on"
          compressionMinSize="2048"
          noCompressionUserAgents="gozilla, traviata"
          compressableMimeType="text/html,text/xml"
     
    5.设置虚拟主机。
    在jakarta-tomcat-5.5.x\下建立文件夹vhost\www.mydomain.com。
    然后修改jakarta-tomcat-5.5.x\conf\server.xml
     
    <Engine defaultHost="localhost" name="Catalina">
          <Host appBase="vhost/www.mydomain.com" name="www.mydomain.com">
          </Host>
          <Host appBase="webapps" name="localhost">
          </Host>
          <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
        </Engine>
     
    6.添加数据库驱动,更新mail.jar和actiovation.jar
    复制mysql-connector-java-3.0.16-ga-bin.jar,pg74.215.jdbc3.jar到

    jakarta-tomcat-5.5.x\common\lib\
    还有javamail 1.3.2的mail.jar,jaf-1_0_2的 activation.jar
    msSQl 2000 JDBC sp3,msbase.jar,msutil,jar,mssqlserver.jar
     
     
    7.配置SSL
    参考 http://jakarta.apache.org/tomcat/tomcat-5.5-doc/ssl-howto.html
    D:\j2sdk1.4.2_06\bin>%JAVA_HOME%\bin\keytool -genkey -alias tomcat -

    keyalg RSA
    输入keystore密码:  lizongbossl
    您的名字与姓氏是什么?
      [tomcat5.5.x]:  tomcat5.5.x
    您的组织单位名称是什么?
      [jakarta]:  jakarta
    您的组织名称是什么?
      [apache]:  apache
    您所在的城市或区域名称是什么?
      [hzcity]:  hzcity
    您所在的州或省份名称是什么?
      [gdp]:  gdp
    该单位的两字母国家代码是什么
      [CN]:  CN
    CN=tomcat5.5.x, OU=jakarta, O=apache, L=hzcity, ST=gdp, C=CN 正确吗?
      [否]:  y
     
    输入<tomcat>的主密码
            (如果和 keystore 密码相同,按回车):

    (必须密码一致,因此直接回车)
    然后再把userhome(例如:C:\Documents and Settings\lizongbo\)下

    的.keystore复制到
    tomcat的conf\目录下。
     (例如:D:\jakarta-tomcat-5.5.x\conf\.keystore )
    配置jakarta-tomcat-5.5.x\conf\server.xml
    加上
        <Connector port="8443"
                   maxThreads="150" minSpareThreads="25"

    maxSpareThreads="75"
                   enableLookups="false" disableUploadTimeout="true"
                   acceptCount="100" scheme="https" secure="true"
                   clientAuth="false" sslProtocol="TLS"
               keystoreFile="conf/.keystore"
               keystorePass="lizongbossl"> <!--与先前设置的密码一致-->
        </Connector>
    8.禁止文件目录列表,
    修改jakarta-tomcat-5.5.x\conf\web.xml,把listing设置为false
     
        <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>true</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
     
     9.指定了自己的javaEncoding
    (参考 http://gceclub.sun.com.cn/staticcontent/html/sunone/app7/app7-dg

    -webapp/ch6/ch6-4.html )

        <servlet>
            <servlet-name>jsp</servlet-name>
            <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-

    class>
            <init-param>
                <param-name>fork</param-name>
                <param-value>false</param-value>
            </init-param>
                    <init-param>
                <param-name>javaEncoding</param-name>
                <param-value>GB18030</param-value>
            </init-param>
            <init-param>
                <param-name>xpoweredBy</param-name>
                <param-value>true</param-value>
            </init-param>
            <load-on-startup>3</load-on-startup>
        </servlet>
     10.添加rar,iso等的mime-type映射
    避免在浏览器里直接打开。
    <mime-mapping>
    <extension>mht</extension>
    <mime-type>text/x-mht</mime-type>
    </mime-mapping>
    <mime-mapping>
            <extension>rar</extension>
            <mime-type>application/octet-stream</mime-type>
        </mime-mapping>
        <mime-mapping>
            <extension>iso</extension>
            <mime-type>application/octet-stream</mime-type>
        </mime-mapping>
        <mime-mapping>
            <extension>ape</extension>
            <mime-type>application/octet-stream</mime-type>
        </mime-mapping>
        <mime-mapping>
            <extension>rmvb</extension>
            <mime-type>application/octet-stream</mime-type>
        </mime-mapping>
        <mime-mapping>
            <extension>ico</extension>
            <mime-type>image/x-icon</mime-type>
        </mime-mapping>
    10.1对html静态页面设置编码
    <!--  修改下面两行以支持静态超文本的自动编码
      -->
     <mime-mapping>
      <extension>htm</extension>
      <mime-type>text/html;charset=gb2312</mime-type>
      </mime-mapping>
     <mime-mapping>
      <extension>html</extension>
      <mime-type>text/html;charset=gb2312</mime-type>
      </mime-mapping>
      </web-app>
     
    11.添加welcome-file-list,并调整顺序。
     <welcome-file-list>   
            <welcome-file>index.jsp</welcome-file>
            <welcome-file>index.html</welcome-file>
            <welcome-file>index.htm</welcome-file>
            <welcome-file>default.html</welcome-file>
            <welcome-file>default.htm</welcome-file>
            <welcome-file>default.jsp</welcome-file>
        </welcome-file-list>

    12.如果你的webapp需要只能够进行https方式访问,那么在webapp的web.xml里加

    上:
     <security-constraint>
      <web-resource-collection>
       <web-resource-name>must https</web-resource-name>
       <url-pattern>/lizongbo/*</url-pattern>
      </web-resource-collection>
      <user-data-constraint>
       <transport-guarantee>CONFIDENTIAL</transport-guarantee>
      </user-data-constraint>
     </security-constraint>
    参考:http://jakarta.apache.org/tomcat/faq/security.html#https
    http://marc.theaimsgroup.com/?l=tomcat-user&m=104951559722619&w=2
    13.修改远程关闭服务器的命令。
    server.xml默认有下面一行:
    <Server port="8005" shutdown="SHUTDOWN">
    这样允许任何人只要telnet到服务器的8005端口,输入"SHUTDOWN",然后回车,

    服务器立即就被关掉了。
    从安全的角度上考虑,我们需要把这个shutdown指令改成一个别人不容易猜测的

    字符串。
    例如修改如下:
    <Server port="8006" shutdown="lizongbo">,这样就只有在telnet到8006,并

    且输入"lizongbo"才能够关闭Tomcat.
    注意:这个修改不影响shutdown.bat的执行。运行shutdown.bat一样可以关闭服

    务器。
    参考:http://jakarta.apache.org/tomcat/faq/security.html#8005
     
     
    以下皆可以参考:http://www.cnjsp.org/document/user/tuman/valve.html
     
     
    14.配置http访问日志。Tomcat自带的能够记录的http访问日志已经很详细了
    取消下面这段的注释:
     
            <Valve className="org.apache.catalina.valves.AccessLogValve"
                     directory="logs"  prefix="localhost_access_log."

    suffix=".txt"
                     pattern="common" resolveHosts="false"/>
     
    然后修改为:
            <Valve

    className="org.apache.catalina.valves.FastCommonAccessLogValve"
                     directory="logs"  prefix="localhost_access_log."

    suffix=".txt"
                     pattern="combined" resolveHosts="false"

    fileDateFormat="yyyy-MM-dd.HH"/>
     
    pattern="combined" 记录的日志内容更详细,fileDateFormat="yyyy-MM-dd.HH"

    ,会让日志文件按小时进行滚卷,
    比默认的按天滚卷要好些,尤其是访问量大的网站,可以考虑写成

    fileDateFormat="yyyy-MM-dd.HH.mm",就会是每分钟一个日志文件了。
    而且可以分别按Engine, Host, or Context,来记录自己的日志
    详情参考:
    http://jakarta.apache.org/tomcat/tomcat-5.5-doc/config/valve.html
    http://jakarta.apache.org/tomcat/tomcat-5.0-doc/config/logger.html
    http://jakarta.apache.org/tomcat/tomcat-5.0-

    doc/config/host.html#Access%20Logs
    而且还可以配合awstats来进行日志统计分析:

    http://www.chedong.com/tech/awstats.html
     
    15.限制ip,限制主机访问等。
    如果想禁止指定的ip或者主机名来拒绝某些机器访问,或者指定某些机器来访问


    也支持分别按Engine, Host, or Context,进行以下配置:
    <Context path="/examples" ...>  ...
      <Valve className="org.apache.catalina.valves.RemoteHostValve"
             allow="*.mycompany.com,www.yourcompany.com"/>
      <Valve className="org.apache.catalina.valves.RemoteAddrValve"
             deny="192.168.1.*"/>
    </Context>
    参考:
    http://jakarta.apache.org/tomcat/tomcat-5.0-doc/config/context.html
     
    16.发布webapp到网站根目录
    1。直接复制到ROOT目录下。
    2.因为无法创建无名字的xml文件,并且在xml文件里指定path也是无效的(tomcat

    靠文件名字来判断的),
    因此必须在server.xml里写下面一段:
    <Context docBase="${catalina.home}/vhost/www.lizongbo.com" path="/"
             privileged="true" antiResourceLocking="false"

    antiJARLocking="false">
    <Manager className="org.apache.catalina.session.StandardManager"

    algorithm="SHA-512"
    entropy="suijisifuchuansuijisifuchuansuijisifuchuansuijisifuchuan"
    maxActiveSessions="800" />
            <Valve

    className="org.apache.catalina.valves.FastCommonAccessLogValve"
                     directory="logs" 

    prefix="localhost_mytest_access_log." suffix=".txt"
                     pattern="combined" resolveHosts="true"

    fileDateFormat="yyyy-MM-dd.HH"/>       
     
    </Context>
    而且必须把ROOT目录删除掉,否则Tomcat还是优先部署ROOT目录为"/"。
     
    17.在重新启动Tomcat的webapp的时候,禁止把session写入文件。
    修改conf/web.xml
    取消注释:
     <!---->
        <Manager pathname="" />
     
    18.增强SessiionID的生成算法和长度。
     

             <Manager

    className="org.apache.catalina.session.StandardManager" algorithm="SHA

    -512" sessionIdLength="40">
             </Manager>
     
    (默认的是MD5,长度是16位。)
     
    19.配置日志:(http://jakarta.apache.org/tomcat/tomcat-5.5-

    doc/logging.html)
     
    在D:\jakarta-tomcat-5.5.8\common\classes\新建log4j.properties
     
    内容:
    log4j.rootLogger=debug, R
    log4j.appender.R=org.apache.log4j.RollingFileAppender
    log4j.appender.R.File=${catalina.home}/logs/tomcat5.5.log
    log4j.appender.R.MaxFileSize=10MB
    log4j.appender.R.MaxBackupIndex=10
    log4j.appender.R.layout=org.apache.log4j.PatternLayout
    log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
    log4j.logger.org.apache.catalina=DEBUG, R
    log4j.logger.org.apache.catalina.core.ContainerBase.Catalina.localhost=

    DEBUG, R
    log4j.logger.org.apache.catalina.core=DEBUG, R
    log4j.logger.org.apache.catalina.session=DEBUG, R
    复制log4j-1.2.9.jar和commons-logging.jar到
    D:\jakarta-tomcat-5.5.8\common\lib
     
    20.使用windows域用户验证
     
    http://jcifs.samba.org/src/docs/ntlmhttpauth.html

    TOMCAT笔记(一)之 目录、虚拟主机、SERVER.XML、TOOL管理原理小记
    关于Tomcat Administration 

    TOOL左界面
         Name: ok.aaa.com [localhost]
    Application Base: webapps //相对于TOMCAT_HOME
    Host (ok.aaa.com[localhost])
    Context (/)     //ROOT物理目录 
              //但作为DOCBASE来说为虚拟目录(相对于Application

    Base)
              //它是url://ok.aaa.com [localhost] 虚拟(别名)根目

    录,这是和APACHE不一样的地方!
              //Application Base才是实实在在的url://ok.aaa.com

    [localhost]根目录 ,
              //启动时系统会自动生成(通过测试ROOT下的WEB-INF、

    WEB.XML)
    Context (/admin)  //系统默认(删除对应的admin.xml其不能自动还原)
    Context (/balancer) //原理同上Context (/admin)
    Context (/jsp-examples)  //相对于Application Base,启动时系统会自动生

    成。
    Context (/manager)    //原理同上Context (/admin)作
    Context (/servlets-examples)   //物理目录,相对于Application Base,启

    动时系统会自动生成。
    Context (/tomcat-docs)   //物理目录,相对于Application Base,启动时系

    统会自动生成。
    Context (/webdav)    //物理目录,相对于Application Base,启动时系统

    会自动生成。

    原理:TOMCAT启动时会搜索HOST的APPBASE下的物理目录,物理目录有WEB-INF、

    WEB.XML信息则载入到TOOL界面,无时不载入,不过不载入的物理目录当然还是可

    以通过URL来访问;虚拟目录(alias)对应的xml文件存在则能载入,无时(相应

    的XML被删除)不载入,通过URL不可访。但是ROOT就不一样了,把ROOT.XML删了

    后,它也能被载入,因为它有双重性。每个目录只要都被正常载入,相应在

    TOMCAT_HOME\Catalina\ok.aaa.com [localhost] \生成其同名的XML,这个名称

    可以被更改,不过最好用可示性较强的文字来命名。

    关于SERVER.XML
    - <Service name="Catalina">
    <Connector acceptCount="100" connectionTimeout="20000"

    disableUploadTimeout="true" port="80" redirectPort="8443" /> //url端口

    为80,默认是8080
    <Connector port="8009" protocol="AJP/1.3"

    protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"

    redirectPort="8443" />
    - <Engine defaultHost="aaa.com" name="Catalina">//这里是指默认主机,也

    就是通过IP、localhost来访问的主机
    - <Host appBase="webapps" name="ok.aaa.com">//虚拟主机ok.aaa.com
    <Alias>ok.bbb.com</Alias>//虚拟主机ok.aaa.com的别名和实实在在的

    url://ok.aaa.com [localhost]根目录webapps
    <Alias>yes.aaa.com</Alias> //同上
    <Alias>yes.bbb.com</Alias> //同上
    <Logger className="org.apache.catalina.logger.FileLogger"

    prefix="localhost_log." suffix=".txt" timestamp="true" />
    </Host>
    - <Host appBase="f://myweb" name="aaa.com">//虚拟主机aaa.com和实实在在

    url://aaa.com [localhost]根目录f://myweb
    <Alias>bbb.com</Alias>//虚拟主机aaa.com的别名
    <Alias>www.bbb.com</Alias> //同上
    <Alias>www.aaa.com</Alias> //同上
    <Logger className="org.apache.catalina.logger.FileLogger"

    prefix="aaa.com_log." suffix="txt" timestamp="true" />

    <Context displayName="freeweb描述" docBase="d://freeweb" path="abc"

    useNaming="false" /> //别名abc指向物理目录d://freeweb
    </Host>
    <Logger className="org.apache.catalina.logger.FileLogger"

    prefix="catalina_log." suffix=".txt" timestamp="true" />
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm" />
    </Engine>
    </Service>
    </Server>

    注意:这里<Context displayName="freeweb描述" docBase="d://freeweb"

    path="abc" useNaming="false" /> //别名abc指向物理目录d://freeweb 在添

    加之后,要重启TOMCAT,这时会在TOMCAT_HOME/conf/Catalina/aaa.com/下生成

    一个abc.xml.其内容就是:

    <?xml version="1.0" encoding="utf-8" ?>

    <Context displayName="freeweb描述" docBase="d://freeweb" path="abc"

    useNaming="false" />

    这之后,再入Tomcat Administration TOOL COMMIT CHANGE 一下

     ,SERVER.XML 里那句<Context~~~~~~~~~~~ />就没了。呵 。。

    最后我要说的是,当进行备份时,一定不要仅把SERVER.XML WEB.XML .....这些

    文件备下来(和APACHE不一样),备就备整个conf目录!!!我之前就是以为在

    SERVER.XML写了CONTEXT就可行了,目录的事全交给SERVER.XML来管。可是这样是

    非常错误的想法。SERVER.XML是不保留CONTEXT的,它只是把你加入Context生成

    文件,之后删除你在它里面添的语句。它只有生成功能,没有对其的直接管理功

    能,功能都给相应的alias的XML文件了!

     

     

    在Tomcat里发布程序?
    找到%tomcathome%\conf\server.xml文件,在<host>标签中加入:

    <Context path="/虚拟目录名" docBase="本地路径" debug="0"
    reloadable="true" crossContext="true">
    </Context>
    这样将你的jsp文件放到"本地路径"下,然后在浏览器中输入

    http://127.0.0.1:8080/虚拟目录名/xxx.jsp即可执行.
    注意!!!还没有完!!这时候你的这个虚拟目录还没有执行servlet的能力(当然如果

    你不用servlet那就令当别论了).
    下面是一个范例:

    <Context path="/bbs" docBase="work" debug="0"
    reloadable="true" crossContext="true">
    </Context>
    你要建一个名叫work的目录在webapps\下
    要使这个work目录可以执行servlet,要有一个配置文件--web.xml,内容为:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
    <display-name>MyWEB</display-name>
    <servlet-mapping>
    <servlet-name>invoker</servlet-name>
    <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>
    </web-app>

    这个使最小配置,仅仅是指明servlet的位置.要把这个文件放到

    webapps\work\WEB-INF\下,你自己的servlet放到webapps\work\WEB-

    INF\classes\下.

    发表于 @ 2007年09月24日 15:57:00|评论(loading...)|编辑

    新一篇: Compass 指南 | 旧一篇: 用Spring Web Flow和Terracotta搭建Web应用

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © zhijie435