thou95
2019-02-21 20:45:09 +08:00
Nginx 是 Web 服务器。
PHP 是脚本语言。
PHP 有个 SAPI 接口,PHP 默认有几个 SAPI 程序( php-cgi,php-cli,php-fpm...),
外部可以通过 SAPI 程序调用 PHP。
FastCGI 是通信协议。
FPM 是实现 FastCGI 协议的 SAPI 程序。
Web 服务器可以通过 FastCGI 协议向 FPM 请求处理 PHP 动态页面。
流程:浏览器 <--HTTP 协议--> Web 服务器 <--FastCGI 协议--> FPM
Swoole 是 PHP 的网络通信扩展库。
Swoole 可以实现 FPM,Nginx 的功能,前提要实现 HTTP 协议,FastCGI 协议。
一般,Web 服务就用 Web 服务器,与自行实现 HTTP 协议相比,Web 服务器已经通过长期时间验证,能保证质量。
但是,有能力用 Swoole 搞个媲美传统 Web 服务器出来也不是不可能的。
Nginx 有个反向代理功能,目前推荐通过:Nginx <--反向代理--> Swoole 实现的 Http 服务器。