Apache mod_fastcgi 和 chunked mode 相遇產生的 HTTP 411

2017-08-01 Apache, php, Ubuntu

之前寫了一篇「UBUNTU 16.04 安裝 APACHE2.4 + MPM_WORKER + FASTCGI + PHP7.0」結果在內部環境跑 mod_fastcgi 時跑 chunked mode 的時候會出現 HTTP erro code 411 的狀況 …

 

關於這個問題找了一些資料,在 php bugs 找到一篇「 raw POST data missing with chunked encoding, FastCGI」和遇到的狀況相同,裡面提到當使用 chunked mode 的時候會要求要有 Content-Length 這個 header,但是 mod_fastcgi request 並沒有包含 Content-Length,所以 chunked mode 吐 HTTP 411 的錯誤。

 

從回文中看起來 php 沒有想替這張票多做解釋,並且以 Not a bug 做最後回應:

[2012-08-17 08:12 UTC] ab@php.net
at the end of the day, this is not a php bug

 

重新仔細看過一遍後在文內有人提交了 patch 給 mod_facgid,而且被接受了「Requests with chunked encoding have no body available to FCGI backend

For Apache mod_fcgid, I have a patch available in the bug I filed at
https://issues.apache.org/bugzilla/show_bug.cgi?id=53332

 

由這兩篇可以得知在 mod_fcgid 應該是已經解了這個 bug (但還是同事提醒,我重新看了才發現到)

 

 

最後我也直接跑 mod_fcgid 來驗證 chunked mode 確實已經沒有 HTTP 411 的問題了。

 

參考「Ubuntu 16.04 安裝 Apache2 + mod_fcgid + mpm_worker 跑 php 7.x

 

 

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

彙整

分類

open all | close all

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱