Tomcat开启APR模式并设置Tomcat为开机自启动服务
一、Tomcat
Tomcat Connector(Tomcat连接器)有三种运行模式:bio、nio、apr。
1、BIO模式
阻塞式I/O操作,表示Tomcat使用的是传统Java I/O操作(即java.io包及其子包)。Tomcat7以下版本默认以BIO模式运行。
由于每个请求都要创建一个线程来处理,线程开销较大,并且也不能处理高并发的场景。是三种模式中性能最低的。
BIO模式启动tomcat看到的日志内容如下:
2、NIO模式
NIO模式是Java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)。
NIO模式是一个基于缓冲区,并能提供非阻塞I/O操作的Java API,拥有比BIO更好的并发运行性能。
Tomcat以NIO模式来运行操作很简单,只需要在Tomcat安装目录/conf/server.xml文件中将如下配置进行修改。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改为
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443" />
Tomcat8以上版本,默认采用的模式就是NIO模式。无需做额外配置。
启动信息如下:
3、APR模式
3.1 简介
APR,Apache Portable Run-time libraries。简单来说,就是从操作系统层面解决异步IO问题,从而提高服务器的处理和响应。同时,也是Tomcat运行高并发应用的**首选模式**。
APR模式,可以提供超强的可伸缩性和性能,更好地集成本地服务器技术。APR是一个高可移植库,也是是Apache HTTP Server2.x的核心。
要启用这种模式,需要以下依赖库的支持:
APR 1.2+ development headers (libapr1-dev package)
OpenSSL 0.9.7+ development headers (libssl-dev package)
JNI headers from Java compatible JDK 1.4+
GNU development environment (gcc, make)
可以用rpm -qa | grep openssl检查本机安装的依赖库版本是否大于或等于apr要求的版本。
APR模式启动信息如下:
3.2 用途
APR用途,包括访问高级IO功能(例如sendfile,epoll和OpenSSL),OS级别功能(随机数生成,系统状态等等),本地进程管理(共享内存,NT管道和UNIXsockets)。这些功能可以使Tomcat作为一个通常的前台WEB服务器,能更好地和其它本地web技术集成,从而使JAVA作为一个具有高性能的WEB服务器平台,而不是简单的容器。
3.3 APR模式与Tomcat Native的关系
在直接使用Tomcat做WEB服务器的情况下,可以使用Tomcat Native来提高其性能,主要是Tomcat在使用JN方式读取文件以及进行网络传输的时候。可以很大地提升Tomcat对静态文件的处理性能,同时如果使用了HTTPS方式传输的话,也可以提升SSL的处理性能。
二、修改apr模式
apr模式本质是使用JNI技术调用操作系统IO接口,需要用到相关API的头文件。
1、下载APR组件依赖
1.1 下载APR的相关依赖包。
下载地址: http://apr.apache.org/download.cgi
1.2 上传服务器
将下载的依赖包文件通过Xftp等文件传输工具上传到服务器。
这里我将文件放在了/home目录下。
1.3 解压APR包
# tar -zxvf apr-1.7.0.tar.gz
# tar -zxvf apr-util-1.6.1.tar.gz
# tar -zxvf apr-iconv-1.2.2.tar.gz
2、下载Tomcat-native
2.1 官方下载Tomcat-native
下载地址:https://tomcat.apache.org/download-native.cgi
在这里插入图片描述
2.2 上传服务器
将下载的文件通过Xftp等文件传输工具上传到服务器。
这里我将文件放在了/home目录下。
2.3 解压Tomcat-native包
# tar -zxvf tomcat-native-1.2.14-src.tar.gz
3、安装APR组件和Tomcat-native组件
3.1 安装相关工具包
# yum -y install cmake gcc expat-devel
3.2 安装apr
# cd /home/apr-1.7.0
# ./configure --prefix=/usr/local/apr
# make && make install
3.3 安装apr-iconv
# cd /home/apr-iconv-1.2.2
# ./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr/
# make && make install
3.4 安装apr-util
# cd /home/apr-util-1.6.1
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-apr-iconv=/usr/local/apr-iconv/bin/apriconv
# make && make install
3.5 安装Tomcat-native
# cd /home/tomcat-native-1.2.14-src/native/
# ./configure --with-apr=/usr/local/apr
# make && make install
4、设置环境变量
4.1 添加apr path
方式一:编辑/etc/profile文件
# vi /etc/profile
在文件末尾添加apr path,具体内容如下:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
export LD_RUN_PATH=$LD_RUN_PATH:/usr/local/apr/lib
ESC—>:wq! 保存并退出编辑。
方式二:使用echo命令将信息写入/etc/profile文件。
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
export LD_RUN_PATH=$LD_RUN_PATH:/usr/local/apr/lib' >> /etc/profile
4.2 profile文件立即生效
# source /etc/profile
5、修改Tomcat的server.xml配置文件
server.xml文件的路径:${Tomcat}/conf/server.xml
5.1 修改protocol值
# vi server.xml
找到原来的内容<Connector port="8080" protocol="HTTP/1.1"改为如下内容
<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
5.2 修改SSLEngine
# vi server.xml
找到如下内容
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
将SSLEngine值改为off
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />
这里将SSLEngine的值改为off是为了解决启动过程中的报错问题:org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Failed to initialize the SSLEngine。
6、启动tomcat验证
6.1 启动Tomcat服务
# cd /home/apache-tomcat-9.0.50/bin
# ./startup.sh
6.2 查看Tomcat日志
# tail -500f ../logs/catalina.out
日志中显示“http-apr-8080”内容,即Tomcat采用APR模式启动。
三、Tomcat设置成系统服务且开机自启动
1、Tomcat配置成系统服务
1.1 /etc/init.d/ 目录
/etc/init.d/目录,存放一系列系统服务的管理(启动与停止)脚本。
用service命令可执行/etc/init.d/目录中相应的服务脚本。
/etc/init.d/目录,实际上是指向/etc/rc.d/init.d/的一个软链接。
1.2 编辑脚本文件
在/etc/init.d/目录下,创建服务tomcat。
# vi /etc/init.d/tomcat
脚本内容如下:
#!/bin/sh
# description: Tomcat9 start stop restart 描述
# processname:tomcat9
# chkconfig:234 20 80 第一个参数是服务的运行级(Linux的运行级为0-6) 第二个参数是启动优先级 0-99之间的数 第三个参数是停止优先级 0-99之间的数
# 设置环境变量
export CATALINA_HOME=/home/apache-tomcat-9.0.50
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib #读取apr pathTOMCAT=/home/apache-tomcat-9.0.50
###tomcat_status(){tomcat_pid=`ps -ef|grep java|grep /home/apache-tomcat-9.0.50|awk '{print $2}'`
if [ -n "$tomcat_pid" ]
thenecho "apache-tomcat-9.0.50(pid $tomcat_pid) 正在运行..."
elseecho 'apache-tomcat-9.0.50 未运行'fi
}start_tomcat(){echo "Starting tomcat"${TOMCAT}/bin/catalina.sh start &
}stop_tomcat(){echo "Stop tomcat"${TOMCAT}/bin/catalina.sh stop
}case "$1" instart)start_tomcat;;stop)stop_tomcat;;restart)echo "Stop tomcat"stop_tomcatsleep 10start_tomcat;;status)tomcat_status;;*)echo "Usage: $0 {start|stop|restart|status}";;esac
exit
1.3 启动服务
# service tomcat start
1.4 查看日志
# tail -500f /home/apache-tomcat-9.0.50/logs/catalina.out
)]
1.5 其他操作服务的命令
1.5.1 关闭服务
# service tomcat stop
1.5.2 查看服务状态
# service tomcat status
1.5.3 服务帮助
# service tomcat *
2、服务设置为开机自启动
Linux下tomcat开机自动启动的两种方法:一种是修改系统文件,这种方式比较简单;另一种shell脚本方式,这种是复杂且专业的,一般推荐这种方式。
2.1 修改系统文件
2.1.1 编辑/etc/rc.d/rc.local 文件
# vi /etc/rc.d/rc.local
文件末尾添加如下内容
export JAVA_HOME= /usr/local/jdk1.8.0_291
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
/home/apache-tomcat-9.0.50/bin/catalina.sh start
2.1.2 修改rc.local文件为可执行
# chomod +x /etc/rc.d/rc.local
2.2 shell脚本(推荐)
2.2.1 编辑Tomcat脚本
【1、Tomcat配置成系统服务】已完成,此步骤忽略。
2.2.2 添加Tomcat服务的管理
# chkconfig --add tomcat
2.2.3 设置Tomcat服务自启动
# chkconfig tomcat on
2.2.4 查看Tomcat的启动状态
# chkconfig --list | grep tomcat
也可以使用命令# chkconfig --list tomcat
2.3 重启服务器
# reboot
2.4 验证Tomcat是否开机自启动
查看Tomcat的日志,确认Tomcat是否启动。
# tail -500f /home/apache-tomcat-9.0.50/logs/catalina.out
Tomcat开启APR模式并设置Tomcat为开机自启动服务相关推荐
- ubuntu20.04设置rc.local开机自启动服务(配置自定义脚本)
参考ubuntu20.04设置rc.local_青冥浩荡不见底的博客-CSDN博客_rc.local ubuntu
- ubuntu20.04设置xxxx_server为开机自启动服务
1.准备工作 将xxxx_server到/usr/local/bin/目录,执行以下指令: cp xxxx_server/usr/local/bin/xxxx_server 2.检查rc-local. ...
- linux 设置开机自启动服务命令,linux开机自启动服务优化设置命令
1.设置成英文字符,避免出现乱码 [root@xuegod62 ~]# LANG=en 2.两种配置linux开机自启动服务命令: 1) [root@xuegod62 ~]# ntsysv 2) [r ...
- linux tomcat apr安装,Linux下Tomcat安装并开启APR模式-Go语言中文社区
环境: CentOS 7.6 64位 apache-tomcat-8.5.43.tar.gz 安装步骤: 1.通过Xftp软件上传安装包到/opt目录 2.解压,重命名移动到/usr/local下 [ ...
- spring boot内嵌tomcat优雅的开启apr模式
文章目录 简介 Win下开启APR Linux下开启APR 把lib打进jar包 简介 环境: jdk8.spring boot 2.3.4.RELEASE.centOS7.3.win7 在sprin ...
- linux tomcat 开启apr,tomcat开启APR
tomcat开启APR tomcat中一共有三种运行模式,分别是:bio,nio,apr bio是阻塞式IO操作,使用的是传统的java i/o处理方式,对于每一个请求都要创建一个线程来进行处理,所以 ...
- oracle存档模式,Oracle开启归档模式并设置RMAN自动备份策略
title: Oracle开启归档模式并设置RMAN自动备份策略 categories: 数据库 tags: - Oracle - RMAN timezone: Asia/Shanghai date: ...
- BIOS怎么开启UEFI模式|电脑设置UEFI启动的方法
http://www.xitongcheng.com/jiaocheng/xtazjc_article_18100.html BIOS怎么开启UEFI模式|电脑设置UEFI启动的方法 发布时间:201 ...
- 设置python程序开机自启动
设置python程序开机自启动 1.创建一个xxx.bat文件,右键编辑 2.在xxx.bat文件里面写入以下内容后保存: d: #如果需要开机自启动的python程序在c盘,不需要这一行程序:如果需 ...
最新文章
- Burpsuite+SQLMAP绕过Token保护(Burpsuite Macros应用)
- LeetCode周总结--第一周
- 2019牛客网暑假多校训练第四场 K —number
- UVA11019 Martix Matcher --- AC自动机
- 【博士招生】卢森堡大学​SnT(CVI²)研究小组,DeepFake 检测领域
- Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(5) - 算术指令
- 普通摄像头游戏——空中飞车
- 企业级PHP发卡网源码,金发卡企业级发卡平台源码
- java 链表 插入_Java链表中添加元素的原理与实现方法详解
- cfn-signal
- 当你觉得焦虑,烦躁的时候怎么办?
- termux内网穿透-ngrok
- 个人计算机是国产芯片,全球最纯国产PC诞生!所有芯片/系统都是国产
- 单片机的程序结束后都干嘛去了?
- PLC流程控制类指令(JMP)编程应用
- 电脑入米家,让小爱同学随意操控电脑开关机(需主机或软路由)
- 用VUI提升用户体验
- sap销售发货的流程_外向交货发起的销售流程
- 算法设计课程设计--任务时间表问题
- 考考你的逻辑推理能力