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 path

TOMCAT=/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" ]
then
        echo "apache-tomcat-9.0.50(pid $tomcat_pid) 正在运行..."
else
        echo '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" in
	start)
		start_tomcat
		;;
	stop)
		stop_tomcat
		;;
	restart)
		echo "Stop tomcat"
		stop_tomcat
		sleep 10
		start_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 

猜你喜欢

转载自blog.csdn.net/baidu_29679655/article/details/118719399