Http

Apache - 幻影長請求返回 408?

  • November 7, 2014

我在 apache 上執行的網站遇到間歇性問題——這些盒子會自發地工作,在這個過程中佔用所有可用的 CPU 和記憶體。為此,我決定試一試名為mod_log_slow的 apache 模組,看看我能否深入了解事情的真相。

這是 mod_log_slow 對您的平均請求所返回的內容(如果它需要超過 1 秒):

VFz-@RFSe6WBtx2tOdv0qgAAAAw [07/Nov/2014:12:23:05 -0500] elapsed: 1.25 cpu: 0.04(usr)/0.01(sys) pid: 8059 ip: 1.2.3.4 host: www.example.com:80 reqinfo: GET /dining?start=20& HTTP/1.1

看一下源碼就知道這個日誌是怎么生成的了,不過應該是比較不言自明的。

然而,我很快發現慢日誌中有一些行像拇指一樣突出。

1f7b:545d003d:0 [07/Nov/2014:12:24:13 -0500] elapsed: 53.33 cpu: 0.02(usr)/0.00(sys) pid: 8059 ip: 1.2.3.4 host: (null):80 reqinfo: (null)

沒有主機?沒有要求?沒有唯一標識?保持打開 53 秒?我也在正常訪問日誌中找到了確切的請求,但同樣令人困惑:

1.2.3.4 - - [07/Nov/2014:12:24:13 -0500] "-" 408 - "-" "-"

在廣闊的體育世界裡發生了什麼?

如果您在埠 80 上打開與伺服器的連接,例如 telnet 1.2.3.4 80nc 1.2.3.4 80

但不要發送任何東西,只是等待它超時。

它可以是任何東西,從編寫糟糕的腳本到測試 dos 攻擊(查看 slowloris)。但是從您的日誌行看來,這不是您的 CPU 問題的原因。

引用自:https://serverfault.com/questions/642845