Tomcat常用配置和调优(生产环境必备技巧)

科技   2024-09-21 12:38   广东  

前面文章介绍了如何快速安装Tomcat,接下来将对Tomcat的常用配置和内存调优等操作进行详细讲解,希望能帮助到你。

一、常用配置

1 修改端口号

修改Tomcat的端口号Tomcat在使用的时候会用到两个端口号:

8005:Tomcat 监听的关闭端口;

8080:Tomcat的服务端口;

修改了这两个端口号,就可以在一台主机上启动多个Tomcat了;

情况一:单个主机只有一个Tomcat

默认情况下,Tomcat 监听在 8080 端口。如果只有1个Tomcat,只需编辑server.xml 文件,找到标签并修改 port 属性。

将 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 设置字符编码

有时候会出现中文乱码情况,为了避免这种情况,可以在标签中添加 uriencoding指定字符编码,可以是utf-8或GBK:

    <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

基础服务 · 目录


上一篇Nginx配置文件详解及常用功能配置(实用率90%)


运维李哥不背锅
专注于各种运维技术、,分享Linux基础知识,服务器,数据库,云原生和网络安全等相关技术,各种进阶知识等着你,助你成为技术达人!
 最新文章