据我所知,PHP 支持处理多个并发连接,并且根据服务器的不同,可以按照本中提到的方式进行配置answer https://stackoverflow.com/a/1430890/2159867
服务器如何管理多个连接,是为每个请求分叉一个子进程,还是使用线程处理,还是使用线程池处理?
The 链接答案 https://stackoverflow.com/a/1430890/2159867说一个进程是分叉的,然后评论中的作者说是线程或进程,这使得它很混乱,如果使用子进程、线程或线程池来处理请求?
据我所知,每个网络服务器都有自己的处理多个同时请求的方式。
通常 Apache2 应该为每个新请求派生一个子进程。但是您可以按照链接的 StackOverflow 答案中提到的方式配置此行为。
例如,Nginx 在一个线程中获取每个请求(像 Node.js 一样异步处理新连接),或者有时使用缓存(根据配置;Nginx 也可以用作负载均衡器或 HTTP 代理)。这是为您的应用程序选择正确的网络服务器的问题。
Apache2 可能是一个非常好的网络服务器,但是当您想在生产中使用它时,您需要更多的负载平衡。但当有多个短暂的持续连接或什至根本不改变的文档(或使用缓存)时,它也具有强大的功能。
如果您希望有许多持久的连接且处理时间较长,那么 Nginx 非常好。那么你就不需要那么多的负载平衡了。
我希望我能够帮助你解决这个问题;)
Sources:
https://httpd.apache.org/docs/2.4/mod/worker.html https://httpd.apache.org/docs/2.4/mod/worker.html
https://anturis.com/blog/nginx-vs-apache/ https://anturis.com/blog/nginx-vs-apache/
我建议您还看一下:PHP 中什么是线程安全或非线程安全? https://stackoverflow.com/questions/1623914/what-is-thread-safe-or-non-thread-safe-in-php
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)