sockets - FastCGI/SCGI前叉

标签 sockets fastcgi scgi preforking

我一直在尝试实现Web服务器网关(出于娱乐和教育目的),并且对于前叉模型,我对FastCGI/SCGI背后的核心体系结构有一些疑问。

FastCGI/SCGI实现如何处理前叉场景中的通信? AFAIK,网关只有一个套接字可以连接到FastCGI服务器。通常,有一个父进程接受来自网关的连接,并将工作移交给一个预分支的工作人员。

由于连接是在 child fork 之后建立的,您应该如何让 child 使用这些套接字与网关进行通信?

最佳答案

我希望我理解这个问题。

服务器套接字应该由父进程创建;当它 fork 时,子代继承该套接字,使其成为共享资源。然后,我想,每个 child 都会尝试同时接受()连接。

作为引用,我发现this document(请参阅“接受序列化”)讨论了在多个套接字上监听时的饥饿问题,以及在共享套接字上的this SO discussion

关于sockets - FastCGI/SCGI前叉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6797222/

相关文章:

c++ - 适用于 Linux(和 Windows)的异步 C++ 通信库

c++ - 如何使用 fastcgi 配置 Lighttpd

nginx - 增加504超时错误

sockets - Elixir代码上的Websocket

c++ - 如果我不设置 EPOLLOUT 事件并直接调用 write() 函数会发生什么?

excel - 如何使用 ftp、http 或套接字从电子表格中使用 VBA for Microsoft Office 上传数据?

c++ - FastCGI、Apache 和 C++

sockets - 端口上的 FastCGI 与套接字上的 FastCGI

python - scgi和wsgi有什么区别?