2

我一直在尝试实现一个 Web 服务器网关(出于娱乐和教育目的),我对 FastCGI/SCGI 背后的核心架构与 pre-fork 模型有一些疑问。

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

由于在孩子分叉建立连接,您应该如何让孩子使用这些套接字与网关进行通信?

4

2 回答 2

1

我希望我理解了这个问题。

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

作为参考,我发现这个文档(参见“接受序列化”)讨论了在侦听多个套接字时的饥饿问题,以及关于共享套接字的这个 SO 讨论

于 2011-08-15T18:02:22.493 回答
1

一种选择是通过UNIX 域套接字传递的文件描述符。史蒂文斯 UNP 有基本的例子

于 2011-08-15T18:06:42.530 回答