我用C++編寫了一個高性能的HTTP事件服務器,並且我希望使用nginx和PHP-FPM(fastcgi)完美地工作。這是我的nginx配置的一個片段。nginx不轉發POST到@fallback
location ~ \.eve$ {
gzip off;
proxy_redirect off;
proxy_buffering off;
proxy_pass http://127.0.0.1:9001;
proxy_intercept_errors on;
error_page 505 = @fallback // this is actually BACKEND.php
}
我的事件服務器返回505錯誤,如果有事件發生,否則它掛起,並最終返回一個「沒有國家CHANGE」指令,我處理與JS或者你有什麼(這基本上是彗星)。關鍵是我希望nginx能夠捕獲505錯誤並將該請求轉發給PHP,以便PHP可以相應地處理該事件。我的服務器基本上只是一個事件中心,允許許多用戶能夠連接並查看是否有任何新事件。如果發生事件,PHP會處理事件分發,包括權限和其他易變的東西。
問題是,nginx沒有將傳遞給* .eve的POST(或GET)變量傳遞給BACKEND.php。現在我認爲這是由設計(由於error_page指令),但我認爲必須有某種方式使其工作。我的服務器運行在9001上,PHP-FPM運行在9000上。任何想法?
StackOverflow中有58257個「未回答的問題」。請在這種情況下接受你自己的答案來幫助降低這個數字(因爲你自己解決了這個問題)。 – 2010-01-08 02:58:55