面向chatgpt运维:解决centos环境下tomcat重启很慢的问题

You

怎么解决:30-Mar-2023 09:35:53.881 WARNING [localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [106,003] milliseconds.

Genie

这个警告表示在为会话ID生成凭证时,创建安全随机实例所需的时间太长了。 SHA1PRNG是一个加密的伪随机数生成器算法,初始化需要大量时间。以下是解决此问题的步骤:

  1. 打开 Tomcat 安装目录下的 conf/logging.properties 文件。
  2. 将以下行添加到此文件的末尾:org.apache.catalina.session.ManagerBase.level = WARNING
  3. 保存并关闭文件。
  4. 重新启动 Tomcat。

这将使 Tomcat 在控制台上记录其他日志级别的信息,但会禁用会话 ID 生成器的调试输出。

You

有其他方法吗?

Genie

除了在日志级别上进行更改之外,还可以尝试以下操作:

  1. 将 Tomcat 默认的随机数生成算法更改为 NativePRNG。可以通过编辑 ${java.home}/jre/lib/security/java.security 文件来完成此操作,在该文件中搜索 securerandom.source 并将其设置为 securerandom.source=file:/dev/urandom
  2. 可以尝试使用其他生成器算法注册一个新的安全随机数生成器实例,并将其用于会话 ID 生成器。例如,您可以在 conf/context.xmlweb.xml 文件中将以下内容添加到 <Context> 标记下(如果使用Tomcat 7或更高版本,则应在 web.xml 中使用此配置):
<Manager className="org.apache.catalina.session.PersistentManager">
  <Store className="org.apache.catalina.session.FileStore" directoryName="/path/to/store"/>
  <SecureRandomClassName>java.security.SecureRandom</SecureRandomClassName>
  <SecureRandomAlgorithm>NativePRNG</SecureRandomAlgorithm>
</Manager>

这将在您选择的位置存储会话信息并将使用新的安全随机数生成器。请注意,这些更改可能会影响应用程序的整体性能和安全性,因此应仔细评估风险并备份所有数据。

posted @ 2023-03-30 09:41  西门飘柔  阅读(80)  评论(0编辑  收藏  举报