前文:目前有很多的HTTP server 软件可供选择,并且每一款都有其优缺点。目前最为流行的两款HTTP Server 软件当数Nginx和Apache了。下面对着两者进行比较,看看哪款更合适我们应用
Apache
Apache是使用最为广泛的一款HTTP server软件,大多数的管理员都特别钟爱它。
特性
足够灵活
广泛支持多种语言
能力强化
模块方式请求模式
prefork模式(线程创建进程)
worker模式(进场创建线程)
事件驱动模式(与worker模式相似),但这种模式会为链接保持创建专用线程,活动请求使用另外创建的线程
Nginx
为了解决高并发场景下的性能低下问题,Nginx应运而生。Nginx提供了异步、时间驱动、非阻塞请求处理。由于请求异步处理,Nginx不必等待每个请求完成,避免锁住资源。
Nginx创建许多工作进程,每个工作进程可以处理数千个链接,因此可以使用很少的进程来承载高并发流量。
Nginx没有内置任何解释语言,这也许是好事,因为如此一来Nginx便可以专注处理请求的接受与响应,而具体解析脚本语言的进程则在Nginx之外。通常我们认为Nginx要快于Apache,但是在一些场景下,例如静态资源(图片资源,css与js文件等)下,Apache也有自己的优势。在构建高性能服务器时,Apache并不是问题所在,PHP才是真正的瓶颈。