一、问题描述
CentOS7下安装了tomcat8之后,直接启动,大概过了5min的样子才启动成功。
二、问题原因
查阅网上资料之后,主要原因是:启动tomcat时,需要生成随机数,这个过程很耗时间。
三、解决方案
(1)方案一
参照博客:http://blog.youkuaiyun.com/jiftlixu/article/details/53718245
修改catalina.sh文件,找到如下语句(直接搜索JSSE_OPTS,就可以定位到):
if [ -z "$JSSE_OPTS" ] ; then
JSSE_OPTS="-Djdk.tls.ephemeralDHKeySize=2048"
fi
JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS -Djava.security.egd=file:/dev/urandom"
其中【-Djava.security.egd=file:/dev/urandom】这部分是追加上去的,再次启动tomcat,就可以了。
(2)方案二
博客地址:http://blog.163.com/_kid/blog/static/30405476201741822358123/
在JVM环境中解决
打开$JAVA_PATH/jre/lib/security/java.security这个文件,找到下面的内容:
securerandom.source=file:/dev/random
替换成
securerandom.source=file:/dev/urandom
就可以了。
(3)方案三
参照博客:https://www.jianshu.com/p/576d356dc163
按照这个博主说法,这个方案是治本的方案,但是个人觉得他写的不是很清楚,我就没做尝试。
另外我在虚拟机里测试过tomcat8,但虚拟机里启动很快,可能是我开启了cpu的虚拟服务原因。
还有我安装的Nginx貌似没有出现这样的问题。