簡體   English   中英

Debian Linux Tomcat 8全新安裝在端口8080上未響應

[英]Debian linux Tomcat 8 fresh install not responding on port 8080

我最近在Debian 9和Ubuntu 16.04 LTS中兩次遇到此問題。

僅使用 Tomcat 8和openjdk 8全新安裝操作系統(未更改默認配置)之后,重新啟動幾次后,Tomcat服務器停止在端口8080上響應。

服務器仍在偵聽端口,但即使是簡單的GET /也會永久掛起:

# netstat -an|grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN

# wget http://127.0.0.1:8080/
--2017-11-03 13:19:52--  http://127.0.0.1:8080/
Connecting to 127.0.0.1:8080... connected.
HTTP request sent, awaiting response...

根據線程轉儲,Tomcat似乎在啟動時掛起了:

"localhost-startStop-1" #14 daemon prio=5 os_prio=0 tid=0x00000000018a1000 nid=0x68d8 runnable [0x00007f2badacd000]
   java.lang.Thread.State: RUNNABLE
        at java.io.FileInputStream.readBytes(Native Method)
        at java.io.FileInputStream.read(FileInputStream.java:255)
        at sun.security.provider.SeedGenerator$URLSeedGenerator.getSeedBytes(SeedGenerator.java:539)
        at sun.security.provider.SeedGenerator.generateSeed(SeedGenerator.java:144)
        at sun.security.provider.SecureRandom$SeederHolder.<clinit>(SecureRandom.java:203)
        at sun.security.provider.SecureRandom.engineNextBytes(SecureRandom.java:221)
        - locked <0x00000000f99155c0> (a sun.security.provider.SecureRandom)
        at java.security.SecureRandom.nextBytes(SecureRandom.java:468)
        at java.security.SecureRandom.next(SecureRandom.java:491)
        at java.util.Random.nextInt(Random.java:329)
        at org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom(SessionIdGeneratorBase.java:237)
        at org.apache.catalina.util.SessionIdGeneratorBase.getRandomBytes(SessionIdGeneratorBase.java:174)
        at org.apache.catalina.util.StandardSessionIdGenerator.generateSessionId(StandardSessionIdGenerator.java:34)
        at org.apache.catalina.util.SessionIdGeneratorBase.generateSessionId(SessionIdGeneratorBase.java:167)
        at org.apache.catalina.util.SessionIdGeneratorBase.startInternal(SessionIdGeneratorBase.java:256)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
        - locked <0x00000000f9905808> (a org.apache.catalina.util.StandardSessionIdGenerator)

為什么會發生這種情況以及如何解決?

基於Debian的發行版上的OpenJDK 8帶有/dev/random預配置為熵的來源。

當沒有足夠的熵時, /dev/random將阻止。

解決方案1 ​​:(首選)

安裝hadged ,它是一個生成附加熵的守護程序。

解決方案2 :(可能不太安全)

/usr/lib/jvm/default-java/jre/lib/security/java.security更改為使用/dev/urandom

#securerandom.source=file:/dev/random
securerandom.source=file:/dev/./urandom

這將全局適用於所有Java進程。

或者,將-Djava.security.egd=file:/dev/./urandom/etc/default/tomcat8 JAVA_OPTS中(僅適用於Tomcat進程)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM