我剛剛遇到一個問題,其中在Rails 3.2.2應用程序中設置response.headers['Content-Length']
導致Nginx拋出「502 Bad Gateway」錯誤。Passenger 3.0.17 + Nginx 1.2.4 +「Content-Length」Header = 502 Bad Gateway
我在控制器中有一個操作,它使用send_data
方法發送變量中包含的原始JPEG數據。之前,我遇到了一些瀏覽器沒有下載正在發送的整個圖像的問題,並發現沒有發送Content-Length頭,所以我決定使用包含JPEG數據的變量的.bytesize
屬性作爲Content-Length。
這在開發過程中可以正常工作(使用Unicorn),現在有一個內容長度標題,其中前面沒有一個標題,但是在我使用Nginx和Passenger的生產環境中,我得到了上述502 Bad網關。此外,在Nginx的錯誤日誌中,我看到:
[error] 30574#0: *1686 upstream prematurely closed connection while reading response header from upstream
有在Rails的生產日誌,它告訴我的應用程序是精細匹配的條目。
我已經註釋掉了我設置Content-Length標題的行,問題就消失了。我仍在測試是否真的需要發送Content-Length標頭,但與此同時,我想我可能會發布這個好奇心,看看有沒有人有任何想法。
看起來像別人有這個問題:https://groups.google.com/d/topic/phusion-passenger/lXtIjuf8ct8/discussion –