设为首页 收藏本站
查看: 1282|回复: 0

[经验分享] Tomcat调优和虚拟主机的设置

[复制链接]

尚未签到

发表于 2018-12-6 06:02:12 | 显示全部楼层 |阅读模式
Tomcat虚拟主机

什么是虚拟主机?
  虚拟主机就是把一台真正的主机分成许多“虚拟”的主机,每一台虚拟主机都具有独立的域名和IP地址,具有完整的Internet服务器功能。
虚拟主机之间完全独立,在外界看来,每一台虚拟主机和一台独立的主机完全一样。

配置文件位置:
  /conf/server.xml      #tomcat配置文件
tomcat的默认端口:8080

1.基于域名的虚拟主机
  多个域名解析一个IP地址

[work@localhost tomcat]$ vim conf/server.xml 添加如下内容



参数说明:

appBase: 指定站点根目录位置(可以是相对路径或绝对路径)
unpackWAR :本项为"true" 意味着 Tomcat 会保存 .war 包的解压结果,然后直接对解压结果进行运行。
考虑到jvm的类加载机制,每个类都仅加载一次,但是页面内容却没有类似的有效缓存,所以 .war 还是解压执行的比较好。
path: 指定访问路径URI(虚拟目录名)
docBase :指定jsp项目的存放路径(可以是相对路径或绝对路径)
debug :设定debug的等级0提供最少的信息,9提供最多的信息
reloadable :本项为true时 当web.xml或者class有改动的时候都会自动重新加载不需要从新启动服务(所谓的支持热发布功能)
crosscontext :本项为"true" 表示配置的不同context共享一个session
cachingAllowed :本项为"true"时 意味着开启了 Tomcat 的静态缓存功能。静态文件包括 JavaScript 程序、图片声音等允许网络访问的文件以及 HTML 页面。
cacheMaxSize :指定静态缓存功能缓冲区大小的设定。单位是 MB ,也就是 1024KB 。例子中设为 1024 ,意味着1GB 。
2.基于端口虚拟主机
  一个IP地址,通过不同的端口实现不同网站的访问
  关键 : 在server.xml 中 设置两个service组件,设置不同的端口(基于端口应用范围很少)































Tomcat Manager 管理页面

添加允许访问的主机

[work@localhost tomcat]$ vim webapps/manager/META-INF/context.xml

  
添加允许访问的用户和角色

[work@localhost tomcat]$ vim conf/tomcat-users.xml




Tomcat调优

JVM内存优化

vim bin/catalina.sh
CATALINA_OPTS="-server -Xms128m -Xmx512m"
# 或者
JAVA_OPTS="$JAVA_OPTS -Xms4096m -Xmx4096m -XX:PermSize=1024m -XX:MaxPermSize=2048m"
开启GC日志

JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/data0/logs/gc-%t.log"
开启JMX端口便于监控

CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=10028
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=java69-matrix.zeus.lianjia.com"
取消JVM 的默认DNS缓存时间
  不缓存DNS记录,避免DNS解析更改后要重启JVM虚拟机

CATALINA_OPTS="$CATALINA_OPTS -Dsun.net.inetaddr.ttl=0 -Dsun.net.inetaddr.negative.ttl=0
参数说明:

-server:表示这是应用于服务器的配置,JVM 内部会有特殊处理的
-Xmx1024m:设置JVM最大堆可用内存为1024MB
-Xms1024m:设置JVM最小内堆存为1024m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
-XX:NewSize:设置年轻代大小
-XX:MaxNewSize:设置最大的年轻代大小
-XX:PermSize:设置永久代大小
-XX:MaxPermSize:设置最大永久代大小
-XX:NewRatio=4:设置年轻代(包括 Eden 和两个 Survivor 区)与终身代的比值(除去永久代)。设置为 4,则年轻代与终身代所占比值为 1:4,年轻代占整个堆栈的 1/5
-XX:MaxTenuringThreshold=10:设置垃圾最大年龄,默认为:15。如果设置为 0 的话,则年轻代对象不经过Survivor 区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在 Survivor 区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概论。
-XX:+DisableExplicitGC:这个将会忽略手动调用 GC 的代码使得 System.gc() 的调用就会变成一个空调用,完全不
会触发任何 GC
Tomcat并发优化
  Tomcat配置文件conf/server.xml中

minProcessors: 最小空闲连接线程数,用于提高系统处理性能,默认值为 10
maxProcessors: 最大连接线程数,即:并发处理的最大请求数,默认值为 75
acceptCount:   允许的最大连接数,应大于等于 maxProcessors ,默认值为 100
enableLookups: 是否反查域名,取值为: true 或 false 。为了提高处理能力,应设置为 false
connectionTimeout: 网络连接超时,单位:毫秒。设置为 0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
其中和最大连接数相关的参数为maxProcessors 和 acceptCount 。如果要加大并发连接数,应同时加大这两个参数。
web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是 2000个左右, Linux是1000个左右。
maxThreads:        客户请求最大线程数
minSpareThreads:   Tomcat初始化时创建的 socket 线程数
maxSpareThreads:   Tomcat连接器的最大空闲 socket 线程数
enableLookups:     若设为true, 则支持域名解析,可把 ip 地址解析为主机名
redirectPort:      在需要基于安全通道的场合,把客户请求转发到基于SSL 的 redirectPort 端口
acceptAccount:     监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads)
connectionTimeout: 连接超时
minProcessors:      服务器创建时的最小处理线程数
maxProcessors:     服务器同时最大处理线程数
URIEncoding:        URL统一编码
Tomcat Connector运行模式优化

Tomcat Connector有三种运行模式:
bio:阻塞IO bio是三种运行模式中性能最低第一种。
nio:是一个基于缓冲区,并能提供非阻塞I/O操作的JAVA API 因此NIO也成为非阻塞I/O,比bio拥有更好的并发性能。
apr:调用httpd核心链接库来读取或文件传输,从而提高tomat对静态文件的处理性能。Tomcat APR模式也是Tomcat在高并发下的首选运行模式



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-643722-1-1.html 上篇帖子: 使用Apache+tomcat比单独使用tomcat能带来什么样的好处及坏处 下篇帖子: 将自行添加的包编译进Tomcat
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表