我在 Debian 8 上使用 tomcat 7 的預設配置時遇到問題。
問題:由於 java 進程,我的伺服器的 cpu 跳到 100% 並在那裡停留幾個小時,導致伺服器變慢。如果我重新啟動 tomcat 伺服器,CPU 會再次變成 1%。幾個小時後,問題再次出現。
Java 應用程式狀態: tomcat 上未安裝自訂 java 應用程序,因此這可能是 tomcat 問題。
日誌:在觀看 catalina.out 時,我發現此錯誤訊息與 cpu 間距啟動相對應
Jan 19, 2017 1:03:23 AM org.apache.coyote.http11.AbstractHttp11Processor 進程資訊:解析 HTTP 請求標頭時發生錯誤
如何複製:伺服器重新啟動後,我嘗試透過網頁瀏覽器存取此網址,使用 https 存取 tomcat 伺服器主頁
瞧,CPU 開始變得瘋狂,我像以前一樣得到日誌。
這意味著什麼:這意味著每個有特殊請求的人都可以 DDOS 我的伺服器
問題:有沒有辦法在不改變我的linux發行版或apt使用的tomcat打包版本的情況下解決這個問題?
我正在使用來自 Google Compute Engine 的全新 debian 8 預設映像。 tomcat 7.0.56 Java 1.7.0_111
答案1
我在 Debian 8、tomca7.0.56 上遇到了完全相同的問題。
對我來說,升級到向後移植版本解決了這個問題。我將tomcat7、tomcat7-common、libtomcat7-java和libservlet3.0-java升級到版本=7.0.73-1~bpo8+1(像這樣:apt-get install tomcat7=7.0.73-1~bpo8+1)
我認為 Debian 8 中目前版本的 tomcat 7.0.56 有嚴重的安全性問題。 !
答案2
簡而言之,申請科學的方法。
- 查看 8080 連接埠上正在偵聽的內容。
- 了解它是如何配置的。
- 了解它在做什麼。
- 採取適當的行動
答案3
我有完全相同的問題,並且系統配置相同。當我重新啟動伺服器時,一兩天就可以了,然後tomcat7又使用了大約99%的CPU。
這次我這樣做了:
服務tomcat7停止
它仍然對我有用。正如你提到的,我不使用 Java,所以它對我來說沒問題。