我试图理解运行Windows的Nginx + PHP可伸缩性,可以说100个请求正在进行中期操作。
分析我看到的源代码:
Nginx根据configuration和/或服务器处理器数量启动一个本地产生。
尽pipe它使用I / O完成端口,但每个工作者只创build一个线程来处理请求。
当PHP请求完成时,Nginx使用FastCGI与PHP进行通信
在这一点上,尽pipeNGinx可以继续扩展,但是在使用multithreading/进程和完成端口进行扩展的标准PHP fastcgi sapi代码中看不到。
对于unix / linux,PHP-FPM来解决这个问题,因为它分派subprocess来完成任务,尽pipe不确定性能。
但回到Windows,仍然在PHP-FPM,我没有看到具体的代码,以保持整个Web服务器性能高。
有没有Windows的替代品? 我的研究有问题吗?
Windows上的nginx的可扩展性是有限的,所以它不是一个生产网站的推荐平台。
从nginx网站 :
Windows的nginx版本使用本机Win32 API(不是Cygwin仿真层)。 目前仅使用
select()
连接处理方法,因此不应期望高性能和可伸缩性。虽然有几个工人可以启动,但其中只有一个工人实际上做了任何工作。
一名工作人员可以处理不超过1024个同时连接。