PHP web服务器 线程,进程之间的关系

关于 php、apache、nginx 分别与进程,线程之间的关系,我提出一个疑问?

既然,PHP 是单进程的,而 Nginx 是多进程的,意思就是,Nginx 能够同时接受多个请求,来处理并发问题。但是每一个请求过来,不是还要去排队等待 php-fpm 来运行 PHP 文件从而进行处理吗?虽然 web 服务器能够同时接受多个请求并进行处理(调用php-fpm),但是由于 php-fpm
是单线程,还是要一个一个处理。没有感觉到 nginx 多进程和 apache 有什么区别。

这是我的理解,请批评指正!

阅读 4.3k
2 个回答

以 Nginx + php-fpm 来说,php-fpm 是单线程的,但是可以开多个 php-fpm 进程,以进程池的形式维护,当 Nginx 转发请求到 php-fpm,从进程池都选择一个 php-fpm 处理。

nginx是一主加多从,phpfpm也是一主加多从。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题