tomcat 算是最知名的java容器了,windows下安装使用tomcat 7其实并不易,本文以windows 2008R2 x64为例。
1、下载安装JDK,设置JAVA_HOME (略)
2、下载tomcat 7
由于我们是x64系统,所以需要下载x64位版本的tomcat,如果是x86版本的,内存使用有4G限制,其它限制暂未知。
这里下载到D盘根目录,正确的下载版本如下:
http://mirrors.ustc.edu.cn/apache/tomcat/tomcat-7/v7.0.70/bin/apache-tomcat-7.0.70-windows-x64.zip
2、右键将压缩包解压至D:\apache-tomcat-7.0.70
3、基本调整
a、修改D:\apache-tomcat-7.0.70\conf\server.xml ,修改
<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则不必开启)
(windows 版本tomcat自带tcnative-1.dll,,即apr模式,无需过问)
b、创建文件
D:\apache-tomcat-7.0.70\lib\org\apache\catalina\util\ServerInfo.properties
内容如下
server.info=Apache tomcat
c、设置JAVA_OPTS参数,编辑D:\apache-tomcat-7.0.70\bin\catalina.bat,大约185行,
set "JAVA_OPTS=-server -Xms1024M -Xmx1024M -XX:PermSize=64M -XX:MaxPermSize=128m"
更多参数请根据需要添加。
4、开启tomcat
将你的应用程序放入D:\apache-tomcat-7.0.70\webapps ,双击D:\apache-tomcat-7.0.70\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、编辑文件D:\apache-tomcat-7.0.70\bin\service.bat,大约162、163、164行,
--JvmOptions "-Dcatalina.home=%CATALINA_HOME%;-Dcatalina.base=%CATALINA_BASE%;-Djava.endorsed.dirs=%CATALINA_HOME%\endorsed;-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties;-XX:PermSize=64M;-XX:MaxPermSize=128m" ^ --JvmMs 1024 ^ --JvmMx 1024
这里设置的是JVM内存,默认128和256,如果你只有一个tomcat实例,双击tomcat7w.exe会弹出一个对话框,也可以设置JVM参数。
很多人用startup.bat可以正常启动,利用windows服务却无法正常启动的原因正是在此。因为windows服务并不读取catalina.bat 里面的JAVA_OPTS 。
2、安装tomcat服务
d: cd D:\apache-tomcat-7.0.70\bin service install tomcat7-8080 net start tomcat7-8080
其实service install 即可,默认名称是tomcat7,但是多个tomcat实例的话,就会导致服务名称冲突,所以最好指定一个名字,建议以业务名称命名,比如tomcat7-site1,tomcat7-app2
一定要先修改service.bat再安装tomcat服务,否则需要先卸载tomcat服务,然后重新安装tomcat服务。
d: cd D:\apache-tomcat-7.0.70\bin net stop tomcat7-8080 service remove tomcat7-8080
tomcat服务默认是手动的,运行命令services.msc进入windows 服务,让tomcat服务开机自动启动。
tomcat后台服务的进程名字叫tomcat7.exe,如果tomcat在前台运行,那么进程叫java.exe
3、开启多个tomcat实例
a、将tomcat目录复制一份出来,修改server.xml里的端口,不与别的实例冲突即可
b、安装tomcat服务同上,服务名称不与别的实例冲突即可
全文完,cmd图待补。