欢迎,来自IP地址为:3.239.97.34 的朋友
根据相关研究结果显示,2017年度互联网应用最为广泛的开源web服务器就是Apache和Nginx。
Apache是一款开源免费的http服务器,广泛应用于类Unix系统和windows系统。它被设计成安全、高效和易于扩展的http服务器,并保持与现行http标准同步。
自1996年诞生以来,Apache已经成为互联网最受欢迎的web服务器,它是Linux和开源生态系统中Web服务器的事实标准。对于Linux的初学者,Apache多被用来当作web服务器使用,它被认为是易于安装和使用。
Nginx(发音读作Engine-X)是一款免费、开源的高性能http服务器,同时也可以当作反向代理或者IMAP/POP3代理来使用。同Apache一样,它也在类Unix系统和windows系统中使用。
Nginx以其高性能、稳定、简单配置和低资源消耗而著称,多年来深受欢迎,在互联网上的使用量正迈向新的高度。它现在是有经验的系统管理员或顶级网站的Web管理员的首选Web服务器。
一些大型网站web服务器的使用情况:
- Apache : PayPal、BBC.com、BBC.co.uk、SSLLABS.com、Apple.com以及其它很多
- Nginx : Netflix、Udemy.com、Hulu、Pinterest、CloudFlare、WordPress.com、GitHub、SoundCloud等
虽然已经有很多文章讨论过关于Apache和Nginx的比较问题(确实有些文章就叫作Nginx vs Apache),但这些文章过于注重两者的性能比较,这不是本文将要讨论的问题。我将根据个人的使用经验,以现代Web应用所需要的生产环境作为需求,对Nginx和Apache进行比较。
1] Nginx非常轻量
Nginx是一个轻量的Web服务器有。与Apache相比,它只使用较少的系统资源。因为Apache集成了运行web运行应用程序所需的大量功能。
因为Nginx只提供Web服务的核心功能,其它功能则需要依靠单独的第三方服务器来提供。如Apache的后端服务器;FastCGI、Memcached、SCGI 和 uWSGI 服务器等众多应用服务器。
所以,Nginx会占用较少的系统资源,比Apache更加适合在资源有限的系统上部署。
2] Nginx更加适合高并发
与Apache面向线程或面向进程的架构(每个连接一个进程或每个连接一个线程)不同,Nginx采用的是可伸缩的、事件驱动(异步的)架构,使用更加适合现代硬件资源的负责过程模型。
它有一个主进程(它负责执行特权操作,如读取配置以及端口绑定),并创建若干工作进程和辅助进程。
工作进程可以同时处理数以千计的HTTP连接,读取和写入内容到磁盘,并与上游服务器通信。辅助过程(缓存管理和缓存处理)可以对磁盘上的内容缓存进行操作管理。
这使得它的操作具有可伸缩性,从而提高性能。这种设计理念使Nginx更加快速,有利于现代Web应用。此外,第三方模块的引入可以使得本地Nginx功能得以扩展。
3] Nginx易于配置
Nginx的配置文件结构简单,这使其配置起来更加容易。配置文件由用于完成特定功能的配置块构成。配置块由大括号({})来定义,配置块中又包括其它配置块,被作为内容。这些配置块会包括http、server、location等。每个配置块由配置项名称和内容组成,每条配置项由分号(;)结尾。你配置可以通过include 命令来引入其它配置文件。
一个比较好的例子就是配置一台Nginx服务器可以运行不同版本PHP应用相对容易,而采用Apache就要复杂的多。
4] Nginx是一个优秀的前端代理
Nginx的一个常用案例就是把它当作代理服务器来使用,由Nginx来接收用户的http请求,再将请求转发至相应的后端服务器处理,并将结果以http响应形式反馈给用户。
同Apache相比,将Nginx配置为反向代理要容易得多,因为这个功能模块是默认启用的。
5] Nginx是一高效的负载均衡器
为了给现代web应用创建一个高稳定性和不间断的运行环境,一般会给web应用服务器配置负载均衡系统。而Nginx则默认对于常用的负载均衡方案提供了支持。
nginx使用下面的负载平衡方法:round-robin (默认方法)、 least-connected、ip-hash、Generic hash。
总之。
Apache和Nginx相互不可替代,他们有各自的优点和缺点。然而,Nginx的提供了一个功能强大的,灵活的,可扩展和安全可靠地现代网站应用平台。