服务器架构
目标架构
以 nginx 的思想来考虑本服务器架构,初步考虑如下图:
当然 php 进程也可以替换为其他的脚本语言,可以更改源码中的 command 变量实现。
服务器有一个 master 进程,其有多个子进程为 worker 进程,master 进程受理客户端的请求,然后分发给 worker 进程,worker 进程处理 http 头信息后将参数传递给 php 进程处理后,将结果返回到上层,再响应给客户端。
也考虑过使用 php-fpm 的 worker 进程池方式,那样的话 php-fpm 进程也要仿写了,目前还不熟悉其内部构造,如果可以简单化,自然向其靠拢。目前对 PHP 的 SAPI 接口不熟,了解一下再考虑。