Tomcat 整理

[size=large][b]1.apr[/b][/size]
许多朋友可能在启动tomcat的时候都会看到类似这样的信息:
[quote]org.apache.catalina.core.AprLifecycleListener init
信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Java\jre\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS[/quote]
出现这种情况是这表示没有找到APR
简要解决办法:去 [url]http://tomcat.heanet.ie/native/[/url] 下载编译好的tcnative-1.dll文件,目前最新为1.1.14,拷贝至jdk\bin下,再启动就可以成功加载APR了。
[quote]org.apache.catalina.core.AprLifecycleListener init
信息: Loaded Apache Tomcat Native library 1.1.14.
org.apache.catalina.core.AprLifecycleListener init
信息: APR capabilities: IPv6 [false], sendfile [true], accept filters [false], random [true].[/quote]
[size=large][b]2.URIEncoding[/b][/size]
有时候在做开发的时候经常发现文本框输入的中文到了程序中成了乱码,其实是因为在端口监听部分缺少编码。
 URIEncoding="UTF-8" 

解决方法如下:
原始部分
8080端口上
<Connector port="8080" protocol="HTTP/1.1" 
connectionTimeout="20000"
redirectPort="8443" />

修改后
<Connector port="8080" protocol="HTTP/1.1" 
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />

8009端口 ajp跳转服务上,关于这个端口在apache http 做跳转时,要相当注意
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

修改后
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" />

这样,服务器得到的中文字符就不会再有乱码了。

[size=large][b]3.设置Tomcat管理员帐号 [/b][/size]
修改tomcat-users.xml文件,在[b]</tomcat-users>[/b]的标签前添加一行
<user username="tomcat" password="tomcat" roles="admin,manager"/>
让tomcat用户拥有管理员权限。

[size=large][b]4.设置SSL[/b][/size]
首先,我们要创建密钥:
keytool -genkey -alias tomcat -keyalg RSA

此时,用户主目录下会生成一个[b].keystore[/b]文件。
然后,我们配置server.xml文件,找到SSLEnabled="true"所在的标签,将其解除注释,同时填补两个属性:
1.keystoreFile="C:/Users/Zlex/.keystore"
2.keystorePass="123456"
keystoreFile 指的是你的密钥文件存储的路径,keystorePass指的是你的密码。
举例如下:

<!--
Define a SSL HTTP/1.1 Connector on port 8443 This connector uses the
JSSE configuration, when using APR, the connector should be using the
OpenSSL style configuration described in the APR documentation
-->
<!-- -->
<Connector
SSLEnabled="true"
clientAuth="false"
keystoreFile="C:/Users/Zlex/.keystore"
keystorePass="123456"
maxThreads="150"
port="8443"
protocol="HTTP/1.1"
scheme="https"
secure="true"
sslProtocol="TLS" />

最后,重启tomcat,在地址栏中访问 [url]https://localhost:8443/[/url]。
将上述[b]port="8443"[/b]配置改为[b]port="443"[/b],可以通过[url]https://localhost/[/url]直接访问。
需要双向认证?参考如下内容:

<Connector port="443"
URIEncoding="UTF-8"
useBodyEncodingForURI="true"
maxHttpHeaderSize="33192"
maxThreads="150"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
disableUploadTimeout="true"
acceptCount="100"
scheme="https"
secure="true"
SSLEnabled="true"
clientAuth="true"
keystoreFile="conf/server.keystore"
keystorePass="123456"
truststoreFile="conf/ca.p12"
truststorePass="123456"
truststoreType="PKCS12"
sslProtocol="TLS" />

其中,

clientAuth="true"
keystoreFile="conf/server.keystore"
keystorePass="123456"
truststoreFile="conf/ca.p12"
truststorePass="123456"
truststoreType="PKCS12"

[b]clientAuth="true"[/b]开启双向认证
[b]keystoreFile="conf/server.keystore" [/b]指向服务器密钥库
[b]keystorePass="123456" [/b]服务器密钥库密码
[b]truststoreFile="conf/ca.p12"[/b]指向CA信任库
[b]truststorePass="123456"[/b]CA信任库密码
[b]truststoreType="PKCS12"[/b]CA信任库格式,除了PKCS#12还有JKS,JKS为java原生默认支持的密钥库格式!
更多ssl配置访问[url]http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html[/url]。

[size=large][b]5.通过GZIP压缩加速服务器响应速度[/b][/size]

只需要配置:

<Connector
port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443"
URIEncoding="UTF-8"
compression="on"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/json"
/>

说说配置细节:
[b]compression="on" 开启压缩支持[/b]
[b]noCompressionUserAgents="gozilla, traviata" 不压缩的内容[/b]
[b]compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/json" 压缩的类型[/b]

之后进行的访问均可获得GZIP压缩支持 :D


[size=large][b]6.设置静态页面编码[/b][/size]
修改web.xml
加入如下内容,是*.hml、*.html静态页面默认字符集编码为UTF-8

<mime-mapping>
<extension>htm</extension>
<mime-type>text/html;charset=utf-8</mime-type>
</mime-mapping>
<mime-mapping>
<extension>html</extension>
<mime-type>text/html;charset=utf-8</mime-type>
</mime-mapping>



[size=large][b]7.配置JVM[/b][/size]
找到[b]JAVA_OPTS[/b]进行配置:
JAVA_OPTS="-Xms512m -Xmx512m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值