Tomcat在Linux上的安装与配置
Tomcat在Linux上的安装与配置
以下使用的Linux版本为: Redhat Enterprise Linux 7.0 x86_64,Tomcat版本为tomcat-7.0.54.
1.下载JDK与Tomcat.
jdk下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
tomcat下载地址:
http://tomcat.apache.org/download-70.cgi
2.jdk安装与配置.
(1)jdk安装
rpm包:
# rpm -ivh jdk-7u55-linux-x64.rpm
tar.gz包:解压缩
# mkdir /usr/java
# cd /usr/java
# tar -zxvf /software/jdk-7u55-linux-x64.tar.gz
生成链接以便版本升级
# ln -s jdk1.7.0_55 latest
# ln -s latest default
(2)配置环境变量
# vi /etc/profile
export JAVA_HOME=/usr/java/default
export JAVA_BIN=$JAVA_HOME/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
使配置生效
# source /etc/profile
测试jdk.
# java -version
java version "1.7.0_55"
Java(TM) SE Runtime Environment (build 1.7.0_55-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode)
3.Tomcat的安装
解压缩
# mkdir /usr/local/tomcat
# cd /usr/local/tomcat
# tar -zxvf /software/apache-tomcat-7.0.54.tar.gz
生成链接以便版本升级
# ln -s apache-tomcat-7.0.54 server
启动Tomcat
# cd /usr/local/tomcat/server/bin
# ./startup.sh
Using CATALINA_BASE: /usr/local/tomcat/server
Using CATALINA_HOME: /usr/local/tomcat/server
Using CATALINA_TEMDIR: /usr/local/tomcat/server/temp
Using JRE_HOME: /usr/java/default
Using CLASS_PATH: /usr/local/tomcat/server/bin/bootstrap.jar:/usr/local/tomcat/server/bin/tomcat-juli.jar
Tomcat started.
测试Tomcat:
打开防火墙,使外部能访问
# /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
# service iptables save
# service iptables restart
或直接修改文件/etc/sysconfig/iptables.
# vi /etc/sysconfig/iptables
-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
# service iptables restart
在浏览器输入: http://192.168.16.133:8080
如在本机可以输入: http://localhost:8080
出现tomcat的页面表示安装成功.
停止Tomcat
# ./shutdown.sh
4.配置web管理帐号
修改文件conf/tomcat-users.xml,在<tomcat-users>元素中添加帐号密码,需要指定角色.
# vi /usr/local/tomcat/server/conf/tomcat-users.xml
<tomcat-users>
<user name="admin" password="admin" roles="admin-gui,manager-gui" />
</tomcat-users>
5.配置web访问端口和设置UTF-8
可以修改conf目录下的文件server.xml,修改Connector元素(Tomcat的默认端口是8080),需要重新启动Tomcat服务生效.
# vi /usr/local/tomcat/server/conf/server.xml
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" />
6.配置https安全连接(ssl加密连接)
https连接需要用到数字证书与数字签名(MD5算法)
网站https连接首先需要申请数字证书,配置加密连接器,浏览器安装证书.
·使用java的工具keytool产生数字证书
# keytool -genkey -alias tomcat -keyalg RSA
生成文件.keystore
注意:CN为主机名称,本机可用localhost
·将文件.keystore放到Tomcat服务器的conf目录下
# cp .keystore /usr/local/tomcat/server/conf/
·修改conf/server.xml文件,修改加密连接器,添加keystoreFile与keystorePass
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="conf/.keystore" keystorePass="123456"/>
·重新启动tomcat.浏览器输入https://localhost:8443访问,并安装证书.
7.Tomcat的目录结构
·bin //存放Tomcat的命令脚本文件
·conf //存放Tomcat服务器的各种配置文件,最主要是server.xml
·lib //存放Tomcat服务器支撑jar包
·logs //存放日志文件
·temp //存放临时文件
·webapps //web应用所在目录,外界访问web资源的存放目录
·work //Tomcat的工作目录
8.web应用的目录结构
webapp -- web应用所在目录
|--- html, jsp, css, js文件等 -- 这些文件一般在web应用根目录下,根目录下的文件外界可以直接访问.
|--- WEB-INF 目录 -- java类、jar包、web配置文件存在这个目录下,外界无法直接访问,由web服务器负责调用.
|--- classes 目录 -- java类
|--- lib 目录 -- java类运行所需要的jar包
|--- web.xml 文件 -- web应用的配置文件
9.虚拟主机的配置
指定虚拟主机名,修改conf/server.xml,添加<host>元素.
<host name="hostname.domainname" appBase="/webapps">
<Context path="/webapp" docBase="/webapps/webapp"/>
</host>
例:
<host name="www.163.com" appBase="/webapps">
</host>
<host name="mail.163.com" appBase="/mailapps">
</host>
须设置DNS解析(host文件或DNS系统).
10.web应用和虚拟目录的映射.
可以修改xml配置文件的<Context>元素来设置web应用和虚拟目录的映射.
·conf/server.xml //在<host>元素下添加<Context path="/webdir" docBase="/webappdir"/>,需要重新启动Tomcat服务生效,不建议使用.
·conf/context.xml //添加<Context>元素所有web应用有效.
·conf/[enginename]/[hostname]/context.xml.default //[enginename]一般是Catalina,主机[hostname]的所有web应用有效.
·conf/[enginename]/[hostname]/ //在目录下任意建一个文件(扩展名xml),文件名即为虚拟目录名.多级目录使用#分割. <Context docBase="/webappdir"/>
//缺省值web应用目录可以定义为ROOT.xml,添加<Context docBase="/webappdir"/>,需重新启动Tomcat服务器.
·META-INF/context.xml //
可以将web应用放在webapps目录下让Tomcat服务器自动映射,适用开发环境,实际运用环境中不用自动映射。
如没有修改配置文件,web应用目录为ROOT时则为默认web应用。
11.web应用首页(welcome file)的配置
修改web应用的配置文件: [webapp]/WEB-INF/web.xml
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
Tomcat6 Tomcat7对比测试
0摘要
本文首先简述了Tomcat7的新特性和增强功能。然后对比tomcat6做了性能测试,测试结果表明,tomcat7的在性能上没有明显的提升,而主要贡献在于Servlet 3.0,内存检测泄露和增强的安全特性。
1 Tomcat7的特性
目前tomcat7已经发布到第34个版本(tomcat7.0.34),而tomcat6现在的版本是6.0.36,所以就bug修改来说,应该算是比较稳定了。
Tomcat7新特性:
1. 使用随机数去防止跨站脚本攻击;
2. 改变了安全认证中的jessionid的机制,防止session攻击;
3. 内存泄露的侦测和防止;
4. 在war文件外使用别名去存储静态内容;
Tomcat7的增强功能:
5 对Servlet 3.0,JSP 2.2和JSP-EL 2.2的支持;
6 更容易将Tomcat内嵌到应用去中去,比如JBoss;
7 异步日志记;
根据Mark Thomas,Tomcat 7委员会的经理的说法,Tomcat 7最显著的三个特征是Servlet 3.0,内存检测泄露和增强的安全特性。不过从变更中没有看到Tomcat7在性能方面的提升,下面测试一下性能。
2 性能测试
2.1 处理静态请求
2.1.1Tomcat6处理静态请求
命令:ab -n 40000 -c 2000 http://172.7.9.201:8080/about.html
Timeper request: 118.038 [ms] (mean)
Timeper request: 115.213 [ms] (mean)
Timeper request: 118.873 [ms] (mean)
Timeper request: 125.233 [ms] (mean)
Timeper request: 118.147 [ms] (mean)
平均 119.101 [ms] (mean)
2.1.2Tomcat7处理静态请求
命令:ab -n 40000 -c 2000 http://172.7.9.201:8080/about.html
Timeper request: 116.968 [ms] (mean)
Timeper request: 119.298 [ms] (mean)
Timeper request: 120.927 [ms] (mean)
Timeper request: 119.914 [ms] (mean)
Timeper request: 123.141 [ms] (mean)
平均 120.050 [ms] (mean)
2.2 请求动态请求
由于ApacheBench或者Webbench都不支持URL中存在类似loginAction!login.action字符串,而在视频去中action都是类似拼接的,这里只能用jmeter测试向Tomcat6/7发送验证登陆信息请求,故结果数据只做本节内对比,不与上节对比。
2.2.1Tomca6处理动态信息
700并发 循环发送5次
http://172.7.9.201:8080/loginAction!login.action?indexcode=abc&password=e10adc3949ba59abbe56e057f20f883e
平均3218.000 [ms] (mean)
2.2.2Tomcat7处理动态信息
700并发 循环发送5次
http://172.7.9.201:8080/loginAction!login.action?indexcode=abc&password=e10adc3949ba59abbe56e057f20f883e
平均3371.333 [ms] (mean)
2.3 性能测试小结
从处理静态请求看,tomcat6平均119.101 [ms],tomcat7平均120.050 [ms],Tomcat7响应性能没有提升。
从处理动态请求看,tomcat6平均3218.000 [ms],tomcat7平均3371.333 [ms]也没有提升。
3 总结
本文首先简述了Tomcat7的新特性和增强功能。然后对比tomcat6做了性能测试,测试结果表明,tomcat7的在性能上没有明显的提升,而主要贡献在于Servlet 3.0,内存检测泄露和增强的安全特性。
图书购买京东链接***微信小程序商城开发实战*** | ***新媒体营销精华:精准定位+爆款打造+匠心运营+内容变现***