专栏首页深夜咖啡小屋Centos 下部署并优化Tomcat
原创

Centos 下部署并优化Tomcat

在上面几篇文章的基础上,本文将主要教新手如何在Centos系统上部署并优化tomcat

  • 首先,访问Apache Tomcat官网,下载合适的Tomcat版本的压缩包,一般推荐下载Tomcat 7.0或者Tomcat 8.0,如非特殊需求,尽量不要下载Tomcat 8.5和尚处于测试阶段的Tomcat 9.0。这里以下载tomcat 7.0.79为例
# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.79/bin/apache-tomcat-7.0.79.tar.gz

解压apache-tomcat-7.0.79.tar.gz

# tar -xvf apache-tomcat-7.0.79.tar.gz

类比Windows上的tomcat 启动,通过bin目录下startup.sh脚本来启动tomcat

# cd apache-tomcat-7.0.79/bin
# ./startup.sh && tail -f ../logs/catalina.out

可以从窗口中看到平常熟悉的日志打印,稍等片刻,tomcat即可启动完成,用浏览器打开服务器的ip:8080就能看到那只猫的logo了

  • 优化tomcat启动
# vim $JAVA_HOME/jre/lib/security/java.security

或者

# vim $JRE_HOME/lib/security/java.security

查找securerandom.source=file:/dev/random,改为

securerandom.source=file:/dev/urandom

:wq保存并退出

  • 优化Tomcat对请求的处理能力

Tomcat Connector支持三种方式运行:BIO,NIO,APR。

  • BIO:

一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。

Tomcat7或以下,在Linux系统中默认使用这种方式。

  • NIO:

利用Java的异步IO处理,可以通过少量的线程处理大量的请求。

Tomcat8在Linux系统中默认使用这种方式。

Tomcat7必须修改Connector配置来启动:

  • APR:

即Apache Portable Runtime,从操作系统层面解决io阻塞问题。

Tomcat7或Tomcat8在Win7或以上的系统中启动默认使用这种方式。

Linux如果安装了apr和native,Tomcat直接启动就支持apr

传统意义上Linux下Tomcat想开启APR模式需进行较多编译工作,中间涉及到的知识点过于广泛,所以下文直接使用centos源中编译好了的库来使Tomcat开启APR模式

# yum install tcnative

重启tomcat,看到控制台显示 “Starting ProtocolHandler [“http-apr-8080”]”即为优化成功!

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用内网穿透技术映射主机端口到公网

    假设frps 运行在 1.2.3.4:34567,客户端(192.168.1.5)把本机的80端口映射成了38888端口,则链路如下

    缘、妙不可言
  • 省流量即省钱 - Nginx 开启支持谷歌Brotli压缩算法

    Brotli最初发布于2015年,用于网络字体的离线压缩。Google软件工程师在2015年9月发布了包含通用无损数据压缩的Brotli增强版本,...

    缘、妙不可言
  • Centos7升级内核

    1.首先去清华的TUNA或者中科大的USTC的elrepo下载适合自己的内核rpm包,我的是64位的,地址如下:

    缘、妙不可言
  • 深入分析Kubelet的动态配置

    The basic workflow for configuring a Kubelet in a live cluster is as follows:

    Walton
  • Tomcat 是怎么处理js file access request的

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    Jerry Wang
  • 【小家Spring】面向切面编程之---Spring AOP的原理讲解以及源码分析(Cannot find current proxy: Set 'exposeProxy' property on )

    一说Spring AOP大家肯定不陌生,它作为Spring Framwork的两大基石之一,在Spring的产品线中有着大量的应用。相信小伙伴们在平时工作的项目...

    YourBatman
  • 【Springboot安全框架】Shiro 核心概念

    关于 Shiro,需要理解三个核心概念:Subject、SecurityManager 和 Realms。

    韩旭051
  • Dataset - Visual Genome 数据集

    数据集标注了图片的 regions descriptions,每个 region 有一个 bounding box.

    AIHGF
  • 区块链开发之Go语言—IO操作

    本篇文章是对区块链开发中的Go语言中常用的io操作的库做一个梳理 io,最基本的io Reader type Reader interface { Re...

    linxinzhe
  • C++ delete的三种面貌

    为了避免内存泄漏,每个动态内存分配必须有与一个相反的解除分配(Deallocation)操作对应,所以C++中有new操作,那么就存在相反的delete操作,n...

    Dabelv

扫码关注云+社区

领取腾讯云代金券