【发布时间】:2015-10-04 13:08:04
【问题描述】:
对于通过 Web 界面访问的高性能应用程序,实现/重用一些 http 服务器或使用 fastcgi 是否有意义?我确信 fcgi 是正确的选择,但我遇到了https://ef.gy/fastcgi-is-pointless,现在我不太确定..
HTTP 不允许一次处理多个会话,但这可以通过生成多个守护进程并让 nginx 充当平衡器来解决。但它可能会更更容易测试。
另一方面,fcgi 似乎已经具备所有必要的高性能部分(在一个进程中多路复用请求,因此更容易实现缓存......)。
除了更易于调试之外,HTTP 与 FastCGI 相比是否有任何优势?
注意:安全不是什么大问题,因为 fcgi 或 http 将在 nginx 代理之后运行。
【问题讨论】:
-
为什么不完全跳过 NGINX 服务器并使用 Restbed 框架实现您的解决方案?披露,我是作者。 github.com/corvusoft/restbed
-
类似于 nginx 用于提供静态内容。对休息床:虽然我必须承认它看起来非常有趣,但我对许可条款并不那么热衷。我总是喜欢每个开发人员更多的许可证,而不是每个安装站点。但除此之外,它看起来很酷,有时可能会尝试一下。一个问题。我希望
Session::wait_for可以用来暂停当前方法的执行并让其他请求得到处理。但是有可能以某种方式等待条件变量吗?遗憾的是,等待时间不会提前知道.. -
正确的 wait_for 仍将允许其他请求以非阻塞方式进行。关于条件变量问题,我目前正在研究以下功能:Session::wait_until(trigger, callback( session, future))。
-
嗯,那会很酷。我可以将繁重的处理卸载到其他线程,同时保持“gui”一个免费的输入/输出..出于好奇,你有这个功能的 ETA 吗?
-
如果您通过跟踪器提出问题。我会优先考虑这个周末,最迟下周末;并随时通知您。