`
skzr.org
  • 浏览: 365365 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

tomcat攻略

    博客分类:
  • J2EE
 
阅读更多

以下是常见的tomcat配置和问题

以下总结来自实践(OS: Ubuntu 10.10 64bit)

目录

  1. Tomcat conf配置
    1. tomcat-users.xml配置
    2. web.xml静态资源编码设置
    3. URI编码设置
  2. APR
  3. 配置SSL
    1. 非APR的SSL配置步骤
    2. APR环境的SSL配置(ssl使用apr)
  4. gzip压缩
  5. jdbc
  6. HttpOnly

 

Tomcat conf配置

 

tomcat-users.xml配置

  • 默认是没有任何用户的,这样开发不方便,如果是生产环境,建议删除所有用户,开发配置(tomcat7)如下:
  • <?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
      <role rolename="manager-gui"/>
      <role rolename="manager-script"/>
      <role rolename="manager-jmx"/>
      <role rolename="manager-status"/>
      <user username="admin" password="" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
    </tomcat-users>
     

web.xml静态资源编码设置

  • 问题:在查看页面js或者css的源代码的时候,源代码出现乱码,但是页面上一切正常运行,因为tomcat需要配置静态资源的编码格式 解决:打开tomcat_home/conf/web.xml文件,在mime-type中增加编码chartset=utf-8信息即可,如:

    <mime-mapping>
            <extension>css</extension>
            <mime-type>text/css;charset=utf-8</mime-type>
        </mime-mapping>
        <mime-mapping>
            <extension>js</extension>
            <mime-type>text/javascript;charset=utf-8</mime-type>
        </mime-mapping>
     

URI编码设置

  • 问题:乱码问题,非通过表单的提交,比如直接在浏览器地址栏直接输入中文数据的乱码问题

    http://yoururl//your.action?name=我的中文名&check=可能在服务器端乱码
    

    解决:打开tomcat_home/conf/server.xml文件,设置Connector属性URIEncoding="UTF-8"就可以解决了,注意每一个Connector都要设置此属性

    <Connector URIEncoding="UTF-8" port="8159" protocol="AJP/1.3" redirectPort="8593"/>
     

APR

  • tomcat启动时提示信息——The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found

    Sep 3, 2010 8:59:51 PM org.apache.catalina.core.AprLifecycleListener init
    INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /prog/java/jdk1.6.0_20/bin:/prog/apache/app-apache-tomcat-7.0.0/bin
    Sep 3, 2010 8:59:51 PM org.apache.catalina.startup.Catalina load
    INFO: Initialization processed in 848 ms

    步骤:APR详情

    1. 准备依赖包
      1. 下载APR依赖: APR 1.2+ development headers (libapr1-dev package)

      2. 下载OpenSSL依赖:OpenSSL 0.9.7+ development headers (libssl-dev package)

    2. 解压缩tomcat_home/bin/tomcat-native.tar.gz
    3. 进入目录:tomcat-native-1.1.20-src/jni/native 详细安装见此目录下的BUILDING文件

    4. 执行 export JAVA_HOME=/prog/java/jdk 设置JDK
    5. 执行:./configure --with-apr=/usr/bin --with-ssl=/usr/bin
    6. 执行:make
    7. 执行:sudo make install -->安装到/usr/local/apr/lib

    8. 执行:ln -s /usr/local/apr/lib/libtcnative-1.so $JAVA_HOME/jre/lib/amd64/
    9. 重新启动tomcat看到:

      Sep 3, 2010 9:56:17 PM org.apache.catalina.core.AprLifecycleListener init
      INFO: Loaded APR based Apache Tomcat Native library 1.1.20.
      Sep 3, 2010 9:56:18 PM org.apache.catalina.core.AprLifecycleListener init
      INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
      Sep 3, 2010 9:56:18 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
      INFO: Failed to initialize the SSLEngine.
      Sep 3, 2010 9:56:18 PM org.apache.coyote.http11.Http11AprProtocol init
      INFO: Initializing Coyote HTTP/1.1 on http-8782
      Sep 3, 2010 9:56:18 PM org.apache.coyote.ajp.AjpAprProtocol init
      INFO: Initializing Coyote AJP/1.3 on ajp-8711
      Sep 3, 2010 9:56:18 PM org.apache.catalina.startup.Catalina load
      INFO: Initialization processed in 840 ms

 

配置SSL

 

非APR的SSL配置步骤

  1. 创建keystore:

    jdk/bin/keytool -genkey -keystore tomcat.keystore -alias tomcat -keyalg RSA
  2. 把tomcat.keystore放入${user.home}目录中,就是你的用户目录,当然你可以放入其他目录中
  3. 修改tomcat的server.xml,增加Connector:

    <Connector port="9145" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"
                    URIEncoding="UTF-8"
                    keystoreFile="${user.home}/tomcat.keystore" keystorePass="cms4g-proxy-PaSsWoRd"
                    maxThreads="20"
                    />
      APR环境的SSL配置(ssl不使用apr):
  4. 如果还是按照上面的#非APR的SSL配置步骤进行ssl配置,那么需要这么做:

    1. 在Connector中配置protocol=org.apache.coyote.http11.Http11NioProtocol

              <Connector port="9145" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"
                      protocol="org.apache.coyote.http11.Http11NioProtocol"
                      URIEncoding="UTF-8"
                      keystoreFile="${user.home}/tomcat.keystore" keystorePass="cms4g-proxy-PaSsWoRd"
                      maxThreads="20"
                      />

      但启动时会提示错误:Failed to initialize the SSLEngine.

      Sep 3, 2010 10:49:42 PM org.apache.catalina.core.AprLifecycleListener init
      INFO: Loaded APR based Apache Tomcat Native library 1.1.20.
      Sep 3, 2010 10:49:43 PM org.apache.catalina.core.AprLifecycleListener init
      INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
      Sep 3, 2010 10:49:43 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
      INFO: Failed to initialize the SSLEngine.
      Sep 3, 2010 10:49:43 PM org.apache.coyote.http11.Http11AprProtocol init
      INFO: Initializing Coyote HTTP/1.1 on http-8782
      Sep 3, 2010 10:49:43 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
      INFO: Using a shared selector for servlet write/read
      Sep 3, 2010 10:49:43 PM org.apache.coyote.http11.Http11NioProtocol init
      INFO: Initializing Coyote HTTP/1.1 on http-9145
      Sep 3, 2010 10:49:43 PM org.apache.coyote.ajp.AjpAprProtocol init
      INFO: Initializing Coyote AJP/1.3 on ajp-8711
      Sep 3, 2010 10:49:43 PM org.apache.catalina.startup.Catalina load
      INFO: Initialization processed in 1162 ms
    2. 虽然提示信息:Failed to initialize the SSLEngine.但ssl依然可以正常运行,要抑制此信息只要修改server.xml配置apr的sslengine=off即可,如

        <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />

      启动信息

      Sep 3, 2010 10:51:53 PM org.apache.catalina.core.AprLifecycleListener init
      INFO: Loaded APR based Apache Tomcat Native library 1.1.20.
      Sep 3, 2010 10:51:53 PM org.apache.catalina.core.AprLifecycleListener init
      INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
      Sep 3, 2010 10:51:54 PM org.apache.coyote.http11.Http11AprProtocol init
      INFO: Initializing Coyote HTTP/1.1 on http-8782
      Sep 3, 2010 10:51:54 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
      INFO: Using a shared selector for servlet write/read
      Sep 3, 2010 10:51:54 PM org.apache.coyote.http11.Http11NioProtocol init
      INFO: Initializing Coyote HTTP/1.1 on http-9145
      Sep 3, 2010 10:51:54 PM org.apache.coyote.ajp.AjpAprProtocol init
      INFO: Initializing Coyote AJP/1.3 on ajp-8711
      Sep 3, 2010 10:51:54 PM org.apache.catalina.startup.Catalina load
      INFO: Initialization processed in 1081 ms

 

APR环境的SSL配置(ssl使用apr)

  1. 创建相关密钥:OpenSSL官方createKey

    1. 创建private key:

      Private keys are generated with 'openssl genrsa' if you want a RSA
      private key, or 'openssl gendsa' if you want a DSA private key.
        openssl genrsa -out privkey.pem
    2. Creating a certificate request

      3. Creating a certificate request
      The certificate request is created like this:
        openssl req -new -key privkey.pem -out cert.csr
    3. 自签名

      4. Creating a self-signed test certificate
        openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095
    4. 我的实际运行:

        openssl genrsa -out tomcatkey.pem
          产生文件 tomcatkey.pem
        openssl req -new -x509 -key tomcatkey.pem -out tomcatca.pem -days 1095
          产生文件 tomcatca.pem
  2. 配置APR的SSL Connector和listener,文件server.xml:

      <!--APR library loader. Documentation at /docs/apr.html -->
      <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
    
      <!-- Connector配置 -->
            <Connector port="9145" SSLEnabled="true" scheme="https" secure="true" 
                    URIEncoding="UTF-8"
                    SSLCertificateKeyFile="${user.home}/tomcatkey.pem"
                    SSLCertificateFile="${user.home}/tomcatca.pem"
                    maxThreads="20"
                    />
    

 

gzip压缩

  • 直接在server.xml中配置Connector即可:

            <Connector port="9145" SSLEnabled="true" scheme="https" secure="true" 
                    URIEncoding="UTF-8"
                    SSLCertificateKeyFile="${user.home}/tomcatkey.pem"
                    SSLCertificateFile="${user.home}/tomcatca.pem"
                    maxThreads="20"
                    compression="on"
                    compressionMinSize="1024"
                    compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/css,application/x-json,application/json"
                    />
    

 

jdbc

  • 配置Context.xml

           <Context path="" docBase="${catalina.home}/atlassian-jira" reloadable="false">
              <Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"
                username="[enter db username]"
                password="[enter db password]"
                driverClassName="com.mysql.jdbc.Driver"
                url="jdbc:mysql://localhost/jiradb?useUnicode=true&amp;characterEncoding=UTF8"
                [ delete the minEvictableIdleTimeMillis and timeBetweenEvictionRunsMillis params here ]
                maxActive="20"
                validationQuery="select 1"/>
    
              
            </Context>
    

 

HttpOnly

 

1
4
分享到:
评论
1 楼 孤独枫 2011-07-25  
有一定的深度啊!
不知道能提供APR在windows环境下配置没有?

相关推荐

    weblogic项目移植到tomcat,配置说明

    WebLogic 项目移植到 Tomcat 配置说明 在进行 WebLogic 项目移植到 Tomcat 之前,需要确保已经成功安装了 Tomcat。下面将对 WebLogic 项目移植到 Tomcat 的配置进行详细说明。 配置 Tomcat 1. 在 Tomcat 安装目录...

    tomcat全攻略 tomcat具体应用

    tomcat是jakarta项目中的一个重要的子项目,其被JavaWorld杂志的编辑选为2001年度最具创新的java产品(Most Innovative Java Product),同时它又是sun公司官方推荐的servlet和jsp容器(具体可以见...

    Tomcat全攻略(TOMCAT详细教程)

    【Tomcat全攻略(TOMCAT详细教程)】 Tomcat是一款广泛应用的开源Servlet容器,由Apache软件基金会的Jakarta项目维护。它被JavaWorld杂志评为2001年度最具创新的Java产品,也是Sun公司官方推荐的Servlet和JSP容器。...

    Tomcat IIS HowTo将Tomcat装入IIS全攻略

    ### Tomcat与IIS集成全攻略:实现无缝Web服务 #### 概述 在Web开发领域,Apache Tomcat和Microsoft Internet Information Services(IIS)分别是Java应用和.NET应用的热门服务器选择。然而,在某些场景下,为了...

    Tomcat全攻略(详细讲述Tomcat)

    **一、Tomcat简介** Tomcat是Jakarta项目下的核心组件,它是一个开源的Servlet容器,主要用于执行Java Servlet和JavaServer Pages(JSP)。Tomcat因其高效、稳定和易用的特点,深受开发者和企业的青睐。它被...

    tomcat全攻略

    【标题】:“Tomcat全攻略” 【描述】:“Tomcat全攻略,基础”这段描述暗示了我们将探讨的是关于Apache Tomcat的基础知识,一个广泛使用的开源Java Servlet容器,它执行Java Web应用程序并支持JavaServer Pages ...

    ubuntu 10.04上搭建tomcat服务器全攻略

    在Ubuntu 10.04操作系统上搭建Tomcat服务器的过程是一项关键的任务,尤其对于那些希望在Linux环境下运行Java Web应用程序的人来说。以下是一个详尽的步骤指南,基于实践经验和排错后的总结。 首先,通过Ubuntu的包...

    J2EE应用服务器Jboss+Tomcat安装攻略

    J2EE应用服务器是企业级Java应用程序开发和部署的核心平台,而Jboss和Tomcat的组合提供了一种开源且稳定的选择。Jboss是一款强大的J2EE应用服务器,它支持多种J2EE规范,如EJB(Enterprise JavaBeans)、JMS(Java ...

    jrebel + myeclipse9.0 + tomcat 热部署攻略

    本教程将详细讲解如何在MyEclipse 9.0集成环境中,结合JRebel插件和Tomcat服务器,实现Spring项目热部署的攻略。 首先,我们来了解JRebel。JRebel是一款强大的Java应用热部署工具,它能够实时地更新类、资源文件...

    Tomcat全攻略

    Tomcat全攻略最好的 谢谢

    Tomcat4_01全攻略

    ### Tomcat 4.01 全攻略:深入解析与配置指南 #### 一、Tomcat 4.01 概览与荣誉 Tomcat 4.01 是一款由 Jakarta 项目组开发的开源应用服务器,专为 Java 应用提供支持。它在 2001 年被《JavaWorld》杂志评为最具...

    jdk5.0 tomcat5.0配置全攻略

    ### JDK 5.0 和 Tomcat 5.0 配置全攻略 #### 环境搭建背景 对于初入Java领域的新手来说,环境配置往往是一个不小的挑战。本篇文章旨在帮助那些在Java学习过程中遇到环境配置问题的朋友,提供一份详尽的JDK 5.0 和 ...

    Tomcat集成StartSSL认证全攻略

    【Tomcat集成StartSSL认证全攻略】 在网络安全日益重要的今天,使用HTTPS协议为网站提供安全的传输已经成为标准。本文将详细介绍如何使用StartSSL获取可信的私钥和证书,并将其集成到Tomcat服务器中,确保你的网站...

    阿里云搭建tomcat/php 环境一键安装包

    文件"Linux一键安装web环境全攻略.pdf"可能是详细的步骤指南,涵盖从基础操作到高级配置的所有信息。而"linux服务器配置.zip"可能包含更多的配置文件和脚本,供用户自定义其服务器环境。 通过这个一键安装包,用户...

Global site tag (gtag.js) - Google Analytics