返回列表 发帖

[原创] [原创]Tomcat使用的一些整理

1) 安装Tomcat时遇到Using Jvm: C:\Java\jre1.6.0_04\bin\client\jvm.dll进度条不动了
说实话,本人使用Tomcat也有一段时间了,我也是第一次遇到这样的情况。刚开始还以为Tomcat5.5必须要jdk1.5才能安装,于是我把jdk1.6卸载,发现还是同样的问题。最后折腾了半天发现是瑞星防火墙的问题了,将其关闭即可正常安装。

2)  Tomcat5.5 Admin 配置
Tomcat5.5以后的版本就不再提供Tomcat Administration Web Application,如果需要使用必须自己下载,而且下载的版本必须和Tomcat的版本对应,我使用的Tomcat版本是5.5.26,因此下载apache-tomcat-5.5.26-admin这个压缩包,将其解压到C盘。然后开始对Tomcat进行配置,拷贝C:\apache-tomcat-5.5.26-admin\apache-tomcat-5.5.26\conf\Catalina\localhost下的文件admin.xml至%TOMCAT_HOME%\conf\Catalina\localhost文件夹下,拷贝C:\apache-tomcat-5.5.26-admin\apache-tomcat-5.5.26\server\webapps文件夹下的admin文件夹至%TOMCAT_HOME%\server\webapps文件夹下。打开%TOMCAT_HOME%\conf文件夹下的tomcat-users.xml,察看是否有<user username="admin" password="123" roles="admin,manager"/>,如果没有这一行请加上,其中123为密码,可以根据自己的喜好替换。
最后重起Tomcat,输入http://localhost:8080/admin,在输入用户名和密码即可登陆Tomcat管理控制平台

3)        编码问题
做完上传文件的模块,测试上传含有中文名称的文件时,发现上传异常。
解决办法:修改%TOMCAT_HOME% \conf文件夹下的server.xml,找到
    <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
    <Connector
port="8080"               maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               c disableUploadTimeout="true" />
将其改为
    <Connector
port="80"               maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               c disableUploadTimeout="true" URIEncoding="utf-8"/>
重起Tomcat即可

4)  虚拟主机配置
有时候我们需要将Tomcat配置成web服务器,并且绑定域名。
解决办法:首先修改%TOMCAT_HOME% \conf文件夹下的server.xml,找到
    <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
    <Connector
port="8080"               maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               c disableUploadTimeout="true" URIEncoding="utf-8"/>
将其端口改为80,然后找到
      <Host name="localhost" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
将其改为:
      <Host name="www.xxx.com" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
其中xxx为绑定的域名,webappsTomcat默认的文件夹%TOMCAT_HOME%\webapps\ROOT,也可以根据情况将web工程放入其他文件夹
最后重起Tomcat即可。

5)  多网站配置
一台服务器上需要配置多个网站
解决方案:
修改%TOMCAT_HOME% \conf文件夹下的server.xml,在</Host>后面添加
<Host name="www.aaa.com" debug="0" appBase="E:\aaa\" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="." debug="0"/>
</Host>

<Host name="www.bbb.cn" debug="0" appBase="E:\bbb\" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="." debug="0"/>
</Host>
这样我们配置了2个网站,分别将2web工程放入E盘的aaa文件夹和E盘的bbb文件夹下
最后重起Tomcat即可。

6)        Apache整和Tomcat
Tomcat作为JSP的容器在处理静态网页、图片文件时处理能力不及Apache,如果要搭建访问量较大的web服务器时,可以考虑Tomcat+ApacheTomcat负责解析jspservletApache负责处理静态网页。
解决方案:
首先,安装TomcatApache2者的安装无先后顺序,不过重要的是2者的端口不能冲突。

然后,修改Apache的配置,主要修改Apache的根目录下的conf文件夹下的httpd.conf文件:
第一步,将DocumentRoot "C:/Apache Software Foundation/Apache2.2/htdocs"改为DocumentRoot "C:/Apache Software Foundation/Tomcat 5.5/webapps"
<Directory "C:/Apache Software Foundation/Apache2.2/htdocs">改为<Directory "C:/Apache Software Foundation/Tomcat 5.5/webapps">
第二步,修改默认主页的优先级将DirectoryIndex index.html index.html.var改为DirectoryIndex index.html index.htm index.jsp
第三步,下载mod_jk-apache-2.2.4.so,因为本人使用的Apacheapache_2.2.4,将mod_jk-apache-2.2.4.so改名为mod_jk.so并拷入Apache根目录下的modules文件夹下。
第四步,在httpd.conf文件最后添加
LoadModule jk_module modules/mod_jk.so
JkWorkersFile "C:\Apache Software Foundation\Tomcat 5.5\conf\workers.properties"

JkMount /servlet/* ajp13

JkMount /*.jsp ajp13
这几行的目的主要是为了Apachejspservlet交给Tomcat处理,当然如果使用Struts1.x的话可以加入解析.do
最后修改Tomcat的配置
第一步,在%TOMCAT_HOME%\conf文件夹下添加workers.properties,该文件内容如下
# mod_jk模块知道Tomcat在何处
workers.tomcat_home=C:\Apache Software Foundation\Tomcat 5.5

# mod_jk模块知道JSDK在何处
workers.java_home=C:\Java\jdk1.6.0_04
ps=\

# mod_jk的模块版本
worker.list=ajp13

# mod_jk的工作端口
worker.ajp13.port=8009

#工作的主机,可以更改
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
第二步,检查%TOMCAT_HOME%\conf文件夹下的server.xml
<!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009"
               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />改句是否被注释,确保没被注释,因为TomcatApache通过它来相互通信。
重起TomcatApache,然后输入:http://127.0.0.1即出现安装Tomcat的默认页面,说明TomcatApache整合成功。

7)        Tomcat 支持gzip压缩
HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解压缩并浏览。
Tomcat下配置如下:
修改%TOMCAT_HOME% \conf文件夹下的server.xml,找到
    <Connector
port="80"               maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               c disableUploadTimeout="true" URIEncoding="utf-8"/>

    <!-- Note : To disable connection timeouts, set connectionTimeout value
     to 0 -->

       <!-- Note : To use gzip compression you could set the following properties :

                        compression="on"
                        compressi
                        noCompressi
                        compressableMimeType="text/html,text/xml"
       -->
将其改为:
<Connector
port="80"               maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               c disableUploadTimeout="true" URIEncoding="utf-8"
compression="on"
               compressi
               noCompressi
               compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"  />

    <!-- Note : To disable connection timeouts, set connectionTimeout value
     to 0 -->

       <!-- Note : To use gzip compression you could set the following properties :

                        compression="on"
                        compressi
                        noCompressi
                        compressableMimeType="text/html,text/xml"
       -->
这样,我们配置好了Tomcat,使其支持gzip压缩。
最后重起Tomcat即可。

8)        发布web工程时Tomcat不再检测jsp页面是否改变
解决方案:
修改%TOMCAT_HOME% \conf文件夹下的web.xml,找到
    <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>xpoweredBy</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>3</load-on-startup>
</servlet>
将其改为:
    <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>development</param-name>
<param-value>false</param-value>

</init-param>
        <init-param>
            <param-name>xpoweredBy</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>3</load-on-startup>
</servlet>
处于发布状态的web工程不需要检查jsp是否需要修改,提高Tomcat效率。
最后重起Tomcat即可。
天行健,君子以自强不息
地势坤,君子以厚德载物
   黑色海岸线欢迎您

返回列表 回复 发帖