且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

windows 安装tomcat 7

更新时间:2022-09-27 20:24:11

tomcat 算是最知名的java容器了,windows下安装使用tomcat 7其实并不易,本文以windows 2008R2 x64为例。


1、下载安装JDK,设置JAVA_HOME (略)


2、下载tomcat 7

由于我们是x64系统,所以需要下载x64位版本的tomcat,如果是x86版本的,内存使用有4G限制,其它限制暂未知。

这里下载到D盘根目录,正确的下载版本如下:

1
http://mirrors.ustc.edu.cn/apache/tomcat/tomcat-7/v7.0.70/bin/apache-tomcat-7.0.70-windows-x64.zip

2、右键将压缩包解压至D盘根目录,给tomcat实例取个好的名字,建议以业务+端口命名。比如tomcat7-site1-8080


3、基本调整


a、修改D:\tomcat7-site1-8080\conf\server.xml ,修改

1
2
3
4
5
6
7
8
9
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               server="nginx" 
               enableLookups="false"
               URIEncoding="UTF-8"
               compression="on" useSendfile="false"
               compressionMinSize="2048"
               noCompressionUserAgents="gozilla,traviata"
               redirectPort="8443" />

设置的内容主要是伪装header,设置字符集,gzip压缩。

(如果tomcat前面还有nginx,gzip则不必开启,开启gzip一般可以将前端页面加载速度至少提升一倍)


b、创建文件

1
d:\tomcat7-site1-8080\lib\org\apache\catalina\util\ServerInfo.properties

内容如下

1
server.info=Apache Tomcat

c、设置JAVA_OPTS参数,编辑D:\tomcat7-site1-8080\bin\catalina.bat,大约185行,

1
set "JAVA_OPTS=-server -Xms1024M -Xmx1024M -XX:PermSize=64M -XX:MaxPermSize=128m"

更多参数请根据需要添加。


4、开启tomcat

将你的应用程序放入D:\tomcat7-site1-8080\webapps ,双击D:\tomcat7-site1-8080\bin\startup.bat ,不出意外,会有一个cmd界面显示tomcat详细信息。用浏览器访问本地8080端口,会显示tomcat欢迎页面。


5、防火墙

为了能让别人访问tomcat,必须在“windows防火墙-高级设置”里放行8080端口(略)


小结

你以为这样就部署完了吗?大概也是为什么tomcat那么容易的原因。一切都因为tomcat在前台运行。


我说下tomcat在前台运行的部署方式遗留的几个问题:

a、屏幕有限,报错日志缺乏,排障困难

b、操作系统重启后无法自动启动,必须人工登录,然后双击startup.bat才行

(PS:windows有自动更新且需要重启的恶劣特性)

c、运行多个tomcat,运维难度大,哪个是哪个傻傻分不清,新手根本不知道需要双击哪几个startup.bat


---------------------------万恶的分割线--------------------------------------


解决方案是必须让tomcat在后台运行,并且随操作系统启动。相应的好处如下:


1、tomcat日志以文件形式保存,方便查找

2、随操作系统启动,不怕宕机

3、tomcat后台服务挂了,一定程度上可以自动修复,见tomcat服务“属性-恢复”选项


具体办法如下:


1、编辑文件D:\tomcat7-site1-8080\bin\service.bat,文件末尾,大约163、164行,

原文如下:

1
2
--JvmMs 128 ^
--JvmMx 256

修改为:

1
2
3
4
    --JvmOptions "-XX:PermSize=64m;-XX:MaxPermSize=128m" ^
    --JvmSs  512 ^
    --JvmMs 1024 ^
    --JvmMx 1024


这里设置的是JVM内存参数,可根据需要调整,默认128m和256m,如果你只有一个tomcat实例,双击tomcat7w.exe会弹出一个对话框,也可以设置JVM参数。


很多人用startup.bat可以正常启动,利用windows服务却无法正常启动的原因正是在此。因为windows服务并不读取catalina.bat 里面的JAVA_OPTS 。


2、安装tomcat服务,在cmd命令行逐行输入下面的命令:

1
2
3
4
d:
cd d:\tomcat7-site1-8080\bin
service install tomcat7-site1-8080
net start tomcat7-site1-8080

其实service install 即可,默认名称是Tomcat7,但是多个tomcat实例的话,就会导致服务名称冲突,所以前文预先指定了一个名字,强烈建议以业务名称+端口号命名,比如tomcat7-site1-8080,tomcat7-app2-8081


一定要先修改service.bat再安装tomcat服务,否则需要先卸载tomcat服务,然后重新安装tomcat服务。

在cmd命令行逐行输入下面的命令:

1
2
3
4
d:
cd d:\tomcat7-site1-8080\bin
net stop tomcat7-site1-8080
service remove tomcat7-site1-8080

tomcat服务默认是手动启动的,运行命令services.msc进入windows 服务,让tomcat服务开机自动启动,不详述。


tomcat后台服务的进程名字叫tomcat7.exe,如果tomcat在前台运行,那么进程叫java.exe


3、开启多个tomcat实例

a、将tomcat目录复制一份出来,修改server.xml里的端口,不与别的实例冲突即可

b、安装tomcat服务同上,服务名称不与别的实例冲突即可


全文完。










本文转自 紫色葡萄 51CTO博客,原文链接:http://blog.51cto.com/purplegrape/1827142,如需转载请自行联系原作者