前面文章介绍了如何快速安装Tomcat,接下来将对Tomcat的常用配置和内存调优等操作进行详细讲解,希望能帮助到你。
一、常用配置
1 修改端口号
修改Tomcat的端口号Tomcat在使用的时候会用到两个端口号:
8005:Tomcat 监听的关闭端口;
8080:Tomcat的服务端口;
修改了这两个端口号,就可以在一台主机上启动多个Tomcat了;
情况一:单个主机只有一个Tomcat
默认情况下,Tomcat 监听在 8080 端口。如果只有1个Tomcat,只需编辑server.xml 文件,找到
将 8080 改为你想要的端口号:
<Connector port="8090" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxParameterCount="1000"
/>
情况二:单个主机配置多个Tomcat(生产环境常用)
此种情况需要改两处端口,就是需要修改关闭端口和Tomcat应用端口,
将第一个Tomcat复制一份,但是pid文件需要删除,让启动时自动生成。
cd /data
cp -r tomcat01/ tomcat02
cd tomcat02
rm -f tomcat.pid
修改server.xml文件
<Server port="8006" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<!-- Security listener. Documentation at /docs/config/listeners.html
<Listener className="org.apache.catalina.security.SecurityListener" />
-->
<Connector port="8091" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxParameterCount="1000"
修改关闭端口关闭Tomcat应用端口
启动两个Tomcat后,查看端口情况。
注:也可以设置通过不同端口访问同一个应用。复制一份connector,修改一个不同的端口即可实现。
2 配置为域名访问
默认是通过IP加端口访问,若要改成域名访问则要修改server.xml的
<Host name="www.liyb.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
需要改本地的hosts文件才可以访问,window主机的hosts文件位置:C:\Windows\System32\drivers\etc
访问:域名+端口
备注:
appBase="webapps" 是app应用放置的默认目录,可以将发布的项目目录修改,支持绝对路径。项目默认是放置tomcat/webapps目录下
3 设置字符编码
有时候会出现中文乱码情况,为了避免这种情况,可以在
<Connector port="8090" protocol="HTTP/1.1"
connectionTimeout="20000"
uriencoding="utf-8"
redirectPort="8443"
maxParameterCount="1000"
/>
4. 调整连接超时
可以通过设置 connectiontTimeout 来调整客户端连接超时时间(单位为毫秒):
<Connector port="8090" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxParameterCount="1000"
/>
5 管理用户权限
可以在 conf/tomcat-users.xml 文件中添加用户角色,用于访问管理界面:
<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="admin"/>
<user username="admin" password="123456" roles="manager-gui,admin-gui"/>
</tomcat-users>
6 直接配置 Tomcat 使用的 JDK 路径
Tomcat是要JDK支持的,有两种方式读取JDK,一是主机已经配置了JDK环境变量,二是直接在Tomcat中指定JDK位置。. 编辑 bin\setclasspath.bat(Windows)或 bin/setclasspath.sh(Linux)文件,设置 JAVA_HOME 和 JRE_HOME:
set java_home=/data/jdk1.8.0_421/
set jre_home=/data/jdk1.8.0_421/jre
保存重启即可生效
二、Tomcat优化
1 内存优化
通过调整JVM参数来优化内存,主要是在bin/catalina.bat/sh 配置文件中进行。linux上,在catalina.sh中添加:
JAVA_OPTS="-server -Xms2G -Xmx4G -Djava.awt.headless=true -Dfile.encoding=utf-8 -XX:MaxPermSize=512m -XX:PermSize=256M -XX:MaxPermSize=512M"
参数说明:
-server:启用jdk的server版本。
-Xms:初始化时的最小堆内存,根据应用程序的内存需求来设置
-Xmx:可使用的最大堆内存。最大堆大小应根据系统的物理内存和应用程序的性能需求来设置
• -XX:PermSize:设置非堆内存初始值,默认是物理内存的1/64。
• -XX:MaxNewSize:新生代占整个堆内存的最大值。
• -XX:MaxPermSize:Perm(俗称方法区)占整个堆内存的最大值,也称内存最大永久保留区域。
(1)常见错误提示一
java.lang.OutOfMemoryError:Java heap space
Tomcat默认可以使用的内存为128MB,如果没有进行配置,一般是不够用的,就会出现内存溢出错误:Outof Memeory,道中客户端显示500错误。
解决办法:一般需要调整Tomcat的-Xms和-Xmx参数。堆的最大值设置为物理可用内存的最大值为80%。
set JAVA_OPTS=-Xms512m-Xmx512m
(2)常见错误提示二
java.lang.OutOfMemoryError: PermGenspace
PermGenspace是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGenspace中,这种错误常见在web服务器对JSP进行precompile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。
解决方法:修改-XX:PermSize的值
set JAVA_OPTS=-XX:PermSize=128M
(3)需要考虑垃圾回收机制。
如果系统花费很多的时间收集垃圾,请减小堆大小。一次完全的垃圾收集应该不超过3-5 秒。如果垃圾收集成为瓶颈,那么需要指定代的大小,检查垃圾收集的详细输出,研究垃圾收集参数对性能的影响。一般说来,你应该使用物理内存的80%
通过-XX:+UseG1GC或-XX:+UseParallelGC等参数选择垃圾回收算法。G1(Garbage First)垃圾回收器适用于大堆内存,而ParallelGC适用于多核CPU。
以上配置应该是生产环境95%会用到的。
本篇关于Tomcat配置管理的知识分享完结!感谢你的阅读,如果有错误之处,敬请指出;如果觉得还OK,欢迎点赞 ;关注 ; 收藏 ; 私信;一起成长!!
基础服务5
linux基础操作18
基础服务 · 目录
上一篇