进行tomcat的配置测试:
./bin/configtest.sh
... 

1. 告警:
Feb 11, 2022 3:42:50 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]
该错误,有些时候不影响项目的启动。

Tomcat支持三种接收请求的处理方式:BIO、NIO、APR

1. BIO由于每个请求都要创建一个线程来处理,线程开销比较大,不能再高并发的场景,性能也是最低的。

2. NIO是一个基于缓冲区、并能提供非阻塞I/O操作的Java API,比传统的bio更好的并发性能。

3. APR(Apache Portable Run-time libraries)简单理解,就是从操作系统级别解决异步IO问题。

所需软件

apr apr-iconv apr-util tomcat-native

安装软件
yum install -y apr-devel openssl-devel gcc make expat-devel libtool

cd /usr/local/src

wget https://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz tar xf apr-1.6.3.tar.gz

cd apr-1.6.3/ ./configure --prefix=/usr/local/apr

make && make install

cd /usr/local/src

wget https://mirrors.cnnic.cn/apache/apr/apr-iconv-1.2.2.tar.gz

tar xf apr-iconv-1.2.2.tar.gz cd apr-iconv-1.2.2/ ./configure --with-apr=/usr/local/apr --prefix=/usr/local/apr-iconv

make && make install

cd /usr/local/src

wget https://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz tar xf apr-util-1.6.1.tar.gz cd 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

cd /usr/local/tomcat/bin/ tar xf tomcat-native.tar.gz cd /usr/local/tomcat/bin/tomcat-native-1.2.16-src/native ./configure --with-apr=/usr/local/apr --with-java-home=/usr/local/jdk8.0

make && make install

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 source /etc/profile

配置环境变量,在/etc/profile文件末尾追加一行:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
————————————————
版权声明:本文为CSDN博主「qq_35187119」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35187119/article/details/112985901

 

2. 报错:

Feb 11, 2022 3:42:50 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-127.0.0.1-8009"]
Feb 11, 2022 3:42:50 PM org.apache.catalina.core.StandardService initInternal
SEVERE: Failed to initialize connector [Connector[AJP/1.3-8009]]
org.apache.catalina.LifecycleException: Protocol handler initialization failed
...
Caused by: java.net.BindException: Address already in use

前头提示初始化端口 AJP/1.3-8009 失败,后面又提示 Address already in use,说明端口被占用,需要修改配置文件 server.xml 中的AJP段的端口配置。
通常在部署单机多tomcat实例的时候,容易出现端口配置冲突的情况。
配置段示例:

    <Connector port="8080" protocol="HTTP/1.1" redirectPort="8443"
               connectionTimeout="20000" acceptCount="1000" maxThreads="300"
               URIEncoding="UTF-8" server="lab2022"/>
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"
               connectionTimeout="20000" acceptCount="1000" maxThreads="300"
               URIEncoding="UTF-8" secretRequired="" server="lab2022"/>

HTTP/1.1 默认端口为 8080,AJP/1.3 默认端口为 8009

如果要修改已启动的多个tomcat实例,实验环境中可以直接批量杀进程 pkill tomcat,然后再逐个修改端口。

 

Tomact 单机多实例:
https://www.cnblogs.com/mafly/p/tomcat.html

学习tomcat的书籍:布里泰恩的《Tomcat 权威指南》 、极客学院的 Tomcat 8 权威指南:http://wiki.jikexueyuan.com/project/tomcat/

posted on 2022-02-11 16:45  51core  阅读(103)  评论(0)    收藏  举报