【发布时间】:2010-01-06 12:38:29
【问题描述】:
我用 C++ 编写了一个高性能 HTTP 事件服务器,我想让它与 nginx 和 PHP-FPM (fastcgi) 完美配合。这是我的 nginx 配置的 sn-p。
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 错误,否则它会挂起,并最终返回一个“NO STATE CHANGE”指令,我用 JS 或你有什么(这基本上是彗星)处理。关键是我希望 nginx 捕获 505 错误并将该请求转发给 PHP,以便 PHP 可以相应地处理该事件。我的服务器基本上只是一个事件中心,允许许多用户能够连接并查看是否有任何新事件。如果有事件,PHP 会处理事件分发,包括权限和其他易变的东西。
问题在于 nginx 没有将传递给 *.eve 的 POST(或 GET)变量传递给 BACKEND.php。现在我认为这是设计使然(由于 error_page 指令),但我认为必须有某种方法使其工作。我的服务器在 9001 上运行,PHP-FPM 在 9000 上运行。有什么想法吗?
【问题讨论】:
标签: php c++ nginx forwarding fallback