修改端口号

1024-655365 之间取端口号

Tomcat有3个重要端口:

默认访问端口:8080

默认监听关闭tomcat的端口:8005

默认AJP访问端口:8009

vim tomcat/conf/server.xml
···
<Server port="8005" shutdown="SHUTDOWN"> #关闭时服务监听的端口
···
<Connector port="8080" protocol="HTTP/1.1" #客户端访问监听的端口
connectionTimeout="20000"
redirectPort="8443" />
···
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> #处理AJP协议监听的端口

修改内存

修改tomcat内存有两种方式:

  1. 修改bin目录下的catalina.bat(Windows下)| catalina.sh(Linux下);
  2. 修改bin目录下的startup.bat(Windows下)| catalina.sh(Linux下);
JAVA_OPTS="-server -Xms256m -Xms512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m"
#将上面的代码添加到catalina.sh的第二行,或设置catalina.sh中第250行左右的JAVA_OPTS后面的参数。 #注:server:虚拟机的运行模式,多个CPU的时候更好的发挥性能。默认是client。
Xms:堆内存。java heap初始大小,默认为物理内存的64分之1。最大不要超过物理内存的80%。
Xmx:java heap的最大值,建议设置为物理内存的一半。
MetaspaceSize:初始原空间的大小,默认21M。
MaxMetaspaceSize:最大原空间大小,默认无上限
#另jvm默认的最小内存为机器物理内存的1/64,最大内存为机器物理内存的1/4

为什么要修改Tomcat内存?

日常开发中,开发项目比较大的时候依赖的jar包比较多,并且在应用服务器启动的时候,会将项目引用的所有的类依次全部加载到内存当中,java的逻辑内存模式分为堆内存(存储类的实例,数组、引用类型也就是用new生成的对象)、栈内存(存储局部变量比如方法参数)、静态内存区(持久区,该区内存不会被gc回收)

常见内存异常:

OutOfMemoryError:Java head space异常

原因:堆内存满,依赖的jar太多。

OutOfMemoryError : PermGen space异常

原因:静态内存区满,加载的类太多

StackOverflowError异常

原因:栈内存溢出,死循环或无限递归导致

Tomcat的热部署

热部署的三种方式:

1、将web应用文件war包直接放在webapps里,tomcat运行时会自动解压;

2、修改sever.xml文件,在Host段内添加Context标签。如下:
<Context debug="0" path="/xxxxdemo" docBase="项目路径" reloadable="true"></Context> #path为访问时端口号后加的路径,项目名。
#debug为项目异常时,输出的日志文件的详细程度,值越大越详细。 3、在conf/Catalina/localhost文件夹下新建xml文件,内容同上,这种情况不能设置path属性,tomcat不认,只能用该xml文件的名字作为部署的应用名。如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="项目路径" reloadable="true"></Context>

隐藏版本号

  • lib/catalina.jar/org/apache/catalina/util/ServerInfo.properties中server.info=Apache Tomcat/8.5.31改为NO VERSION

AJP协议

若tomcat前面用nginx反向代理则可以忽略ajp连接器(connector),如若使用的是apache httpd服务器则不能关闭ajp连接器,关闭该连接器只需要注释掉server.xml中对应的节点即可。如下:

修改Cookies安全性

在tomcat context.xml配置文件中的context节点设置useHttpOnly=true即可开启cookie加密,提高安全性,使cookie不那么容易被窃取,预防xss攻击

性能优化

tomcat三种运动模式:

  • BIO:效率低下,一个线程只能处理一个请求,请求过多的时候,线程会相应的增加,很浪费资源,tomcat7以下版本是BIO,

  • NIO:基于缓存区、非阻塞的I/O。相对于BIO效率更高(少量线程处理多请求),

  • APR:需要操作系统的支持(tomcat7以及以上版本在操作系统安装了APR时候,tomcat默认是apr模式)

tomcat常用功能的更多相关文章

  1. Nginx常用功能

    3.Nginx常用功能 3.1 反向代理服务器 3.1.1.demo2 a.我在tomcat下部署了一个javaweb项目,tomcat安装的服务器IP为:192.168.37.136,部署的项目在t ...

  2. tomcat常用配置详解和优化方法

    tomcat常用配置详解和优化方法 参考: http://blog.csdn.net/zj52hm/article/details/51980194 http://blog.csdn.net/wuli ...

  3. fiddler常用功能

    原理 Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(cookie,html,js,css等). ...

  4. Nginx超详细常用功能演示,够用啦~~~

    前言 Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服 ...

  5. WebStorm 常用功能的使用技巧分享

    WebStorm 是 JetBrain 公司开发的一款 JavaScript IDE,使用非常方便,可以使编写代码过程更加流畅. 本文在这里分享一些常用功能的使用技巧,希望能帮助大家更好的使用这款强大 ...

  6. AVA正则表达式4种常用功能

    正则表达式在字符串处理上有着强大的功能,sun在jdk1.4加入了对它的支持 下面简单的说下它的4种常用功能: 查询: String str="abc efg ABC";  Str ...

  7. [转]WebPack 常用功能介绍

    概述 Webpack是一款用户打包前端模块的工具.主要是用来打包在浏览器端使用的javascript的.同时也能转换.捆绑.打包其他的静态资源,包括css.image.font file.templa ...

  8. FastReport.Net 常用功能总汇

    一.常用控件 文本框:输入文字或表达式 表格:设置表格的行列数,输入数字或表达式 子报表:放置子报表后,系统会自动增加一个页面,你可以在此页面上设计需要的报表.系统在打印处理时,先按主报表打印,当碰到 ...

  9. python3 字符串与列表常用功能

    一.字符串常用功能 1. capitalize(),将字符串的首字母变成大写,其余全部置为小写:如果字符串中有多个单词,也只是将第一个单词的首字母置为大写:例: >>> name = ...

随机推荐

  1. 修改Win7登陆界面墙纸

    修改Win7登陆界面墙纸 修改注册表.reg Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\W ...

  2. 运行 tensorboard

    使用下面命令总是报错: tensorboard --logdir=mylogdir tensorboard --logdir='./mylogdir' 正确命令 tensorboard --logdi ...

  3. /usr,/usr/local/ 还是 /opt 目录区别

    Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的 /us(Unix Software Resource)r:系统级的目录,可以理解为C:/Windows/, /usr/lib ...

  4. JS中的继承(原型链、构造函数、组合式、class类)

    1.继承 应注意区分继承和实例化,实例化是生成一个对象,这个对象具有构造函数的属性和方法:继承指的应该是利用父类生成一个新的子类构造函数,通过这个子类构造函数实例化的对象,具有子类的属性和方法,同时也 ...

  5. BZOJ 2060: [Usaco2010 Nov]Visiting Cows 拜访奶牛 树形DP

    Code: #include <bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) ...

  6. [HG]奋斗赛M

    题A     请进入链接↑ 题B     请进入链接↑ 题C     请进入链接↑ 题D     请进入链接↑ 题E     请进入链接↑ 题F     懒得写了,借用一下Chtholly_Tree巨 ...

  7. Apache服务器出现Forbidden 403错误提示的解决方法

    默认web目录/var/www/html 改成 /data/www出现403问题解决: vim /etc/apache2/apache2.conf <Directory /data/www/&g ...

  8. 20180715-Java日期时间

    import java.util.Date;public class DateDemo{ public static void main(String[] args){ //初始化Date对象 Dat ...

  9. js请求解析xml

    xml数据 <?xml version="1.0" encoding="utf-8"?> <table> <node name=& ...

  10. HDU4336 Card Collector (概率dp+状压dp)

    http://acm.hdu.edu.cn/showproblem.php?pid=4336 题意:有n种卡片,一个包里会包含至多一张卡片,第i种卡片在某个包中出现的次数为pi,问将所有种类的卡片集齐 ...