Tomcat服务运行异常处理办法

2021-12-28   


Tomcat服务运行异常处理办法

1.Apache-tomcat-8.5.24的8005端口无法正常启动

首先可以从配置文件了解一下Tomcat的8005、8009、8080这三个端口的作用

[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml

<Server port="8005" shutdown="SHUTDOWN">

8005端口是用来关闭TOMCAT服务的端口。

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器

当检查tomcat服务的端口时,发现8005端口启动缓慢或者很久没有启动起来,导致影响tomcat服务的访问,可以用以下办法解决:

**方法一:**修改$JAVA_HOME/jre/lib/security/java.security(JDK安装目录下的jre/lib.....) 文件中 securerandom.source 配置项

[root@localhost ~]# vim /usr/local/jdk1.8.0_181/jre/lib/security/java.security
……
#将原本的
securerandom.source=file:/dev/random
#修改为
securerandom.source=file:/dev/urandom
#上面一个尝试过不管用的话可以将改参数重新修改为
securerandom.source=file:/dev/./urandom
……

**方法二:**tomcat8005端口启动非常慢,默认tomcat启动需要从/dev/random读取大量的随机数据,默认该设备生成随机数据的速度很慢,可用使用下面的命令用urandom替换random

[root@localhost ~]# mv /dev/random /dev/random.bak
[root@localhost ~]# ln -s /dev/urandom /dev/random

**方法三:**增大/dev/random的熵池,充分利用硬件来提高熵池产生的速度

#如果CPU带有DRNG特性直接安装rng-tools启动服务即可
[root@localhost ~]# yum -y install rng-tools
[root@localhost ~]# systemctl enable rngd --now

#如果CPU不支持DRNG特性或者像我一样使用虚拟机,可以使用/dev/unrandom来模拟
[root@localhost ~]# cat /proc/cpuinfo | grep rdrand     //没有结果就表示cpu不支持DRNG特性
[root@localhost ~]# yum -y install rng-tools
[root@localhost ~]# cp /usr/lib/systemd/system/rngd.service /etc/systemd/system
[root@localhost ~]# vim /etc/systemd/system/rngd.service
……
[Service]
ExecStart=/sbin/rngd -f -r /dev/urandom       //让它读取/dev/unrandom设备来增加熵池大小
……
[root@localhost ~]# service rngd start

根据以上的方法修改后,再将tomcat服务kill掉重新启动,发现8005端口已经能够正常启动了!

2.Apache-tomcat-8.5.24数据库连接数满了解决办法

在应用没有进行版本更新的情况下,如果日志出现大量连接数据库的报错,先检查下数据库的服务是否正常。如果数据库服务正常运行的话,建议在非业务时候重启一下数据库主机后并重新启动一下tomcat服务,一般就正常了。运维坚信的真理:99%的问题都能靠重启解决。虽然这样看起来很没啥技术含量!

3.Apache-tomcat-8.5.24报错403的解决办法

当访问tomcat的8080端口时一直访问不通,除了8080端口以外有可能是8005端口还没正常启动

如果tomcat对应端口都正常启动了,访问url报错403,可以通过日志看看是哪些文件启动服务的用户没有权限访问或者是不是启动应用的身份错了,比如应该tomcat用户来启动的直接使用root身份启动了。报错403都是权限出了问题

Q.E.D.