windows 平台 Tomcat 使用
一、tomcat简单使用
tomcat目录说明
- bin: 可执行文件放置地址,通常为tomcat启动停止等启动脚本
- conf: tomcat服务器的相关配置文件
- lib:tomcat启动所需要依赖的jar包
- logs:tomcat工作的相关日志文件
- webapps:部署服务的war包放入此目录下,默认启动时就会将war包解压
- work:在jsp被编译后将会放入该目录下
二、tomcat配置用户参数
用户的作用:
通过提供的tomcat服务管理页面来查看优化参数以及部署的服务等信息(提供可以暂停webapp目录下指定子项目服务)
角色配置说明:
默认无角色,直接访问tomcat指定管理界面会提示错误,参看登录错误跳转页面查看页面所需要的角色
如上图所示代表当前界面需要的是admin-gui角色的用户。
配置示例:
在tomcat-user.xml文件中进行配置修改
<role rolename="manager-gui"/>
<user username="manager" password="123456" roles="manager-gui"/>
配置管理页面允许远程机器访问
默认管理界面,只允许服务所处物理机本机访问
进入webapps/manager/META-INF目录找到context.xml文件。注释如下内容
三、tomcat启动方式
1、使用startup.bat直接启动
此方式为控制台启动的方式启动tomcat(开发阶段常用的启动方式)
2、以后台服务的方式启动
注册为后台服务后,可通过设置开机自启等方式跟随服务器电脑进行启动
1)、注册为windows后台服务
通常在正式生产环境下建议采用注册为服务的方式进行启动
进入tomcat的bin目录下。进入cmd命令窗口,执行以下脚本
service.bat install servername // servername:含义为发布服务名称
查看服务
2)、启动服务
-
直接右键服务开启,或者设置服务为开机自启
-
运行窗口启动
修改bin目录下java8w.exe文件为servername8.exe
双击运行即可
3)、移除服务
service.bat remove servername
三、tomcat中jvm参数优化
1、常用参数
-server 以服务的方式启动。(注册为后台服务后该参数无效)
-Xmx6000M 初始最大内存大小
-Xms6000M 初始最小内存大小
在现在的环境下,服务器内存通常都足够大,因此通常直接将最大内存和最小内存都开到最大,通常默认为物理机内存的1/4
2、简单参数优化示例
set JAVA_OPTS=-server -Xms5120M -Xmx5120M
3、startup.bat启动时设定jvm参数
找到catalina.bat文件 并在文件第二行加入set JAVA_OPTS参数
4、后台服务启动设定jvm参数
1)、方式一:运行servernamew.exe后再窗口中设置
注意:必须在inital memory pool中指定内存大小。通过-xms和-xmx的指定时无效的。因为最终在inital memory pool中指定的内存会追加在最后面
2)、方式二:在注册服务前修改service.bat文件
注意:通过修改注册表的方式修改内存时,同样需要运行java8w.exe中来对初始内存进行调整,所以推荐直接使用java8w.exe方式来修改jvm参数。因此推荐使用 第一种方法来修改jvm参数
3)、方式三:修改注册表的方式
win+r 输入register 打开注册表
64位计算机下找到如下目录
\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\testTomcat\Parameters\Java
双击options进行参数修改,修改完成后需要重启电脑即生效
注意:当前方式也需要运行servernamew.exe 中设置初始内存大小。所以推荐使用方式一来修改jvm参数
四、使用jconsole远程连接查看后台服务相关的jvm参数
在以后台服务的方式启动后,我们是无法通过tomcat用户管理页面找到相关jvm参数信息。也无法通过jconsole本地连接来查看相关jvm信息。故需要配置jconsole远程连接的方式
1、启动tomcat前增加设置jvm参数
-Djava.rmi.server.hostname=192.168.0.132
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false