Apache和Nginx是世界上两个最广泛使用的Web服务器。如果您托管网站或管理服务器,则您正在使用其中一个或考虑使用其中一个。两者都是开放源代码,并受到开发人员,系统管理员和托管提供商的信任。但是,您怎么知道哪一个适合您的需求?
在这篇文章中,我们将在几个关键领域进行比较Apache和Nginx:性能,配置样式,用例等。无论您是运行内容丰富的网站还是高流量的Web应用程序,都可以清楚地了解哪种服务器(或服务器组合)可能最适合您的设置。
如果您是这个主题的新手,这里有一个快速的复习 Web服务器是什么.
什么是apache和nginxApache和Nginx都具有相同的目的:向用户交付Web内容。但是他们以不同的方式进行。
Apache HTTP服务器 自1995年以来一直存在,并帮助塑造了早期的互联网。它以其灵活性,广泛的兼容性和大量内置模块而闻名。
nginx (发音为" Engine X")于2004年发布,以解决Apache的性能限制,尤其是在提供静态内容并立即处理许多连接周围。它很快以速度和效率而闻名。
一目了然nginx 使用异步,事件驱动的模型,允许其使用最少的资源使用来处理数千个同时连接。这使其非常适合需要有效扩展的高流量网站或应用程序。
阿帕奇另一方面,使用基于过程或线程的方法。这可以在沉重的负载下消耗更多的内存,但在处理请求的处理方式方面具有灵活性。
在包括集装箱设置在内的现代环境中,Nginx仍然是一个流行的选择。这是一个例子 如何使用nginx来代理码头容器 有效地处理流量。
很高兴知道: 如果您的网站可以一次为许多访问者提供服务,则NGINX可能会提供更好的速度和较低的内存使用。
功能 /场景
阿帕奇
nginx
发布年
1995
2004
建筑
基于过程/线程
事件驱动,异步
性能(交通高)
缓和
出色的
静态内容传递
好
出色的
动态内容处理
内置(例如mod_php)
通过外部处理器
.htaccess支持
是
没有
反向代理支持
基本
强大
易于配置
灵活的
集中
Windows兼容性
强大
有限的
社区和文档
广泛的
生长
最好的
CMS网站,共享托管
静态,交通高
可以一起使用吗?
✔
✔
静态与动态内容静态文件(例如图像,CSS和HTML)得益于NGINX的速度更快。它在不经过太多处理的情况下提供文件非常有效。
动态内容(如PHP应用程序)的工作方式有所不同:
阿帕奇 可以使用内置模块(例如MOD_PHP)直接运行动态脚本。 nginx 向外部处理器(例如PHP-FPM)转发动态请求。此方法增加了一个步骤,但是如果正确配置,它可以提高稳定性和性能。简而言之: Apache对于开箱即用的动态站点更简单。NGINX非常适合高流量静态交付,一旦正确设置,它就可以与动态内容很好地配合使用。
想建立一个完整的堆栈吗?这是一个指南 设置完整的LEMP堆栈 使用nginx,mysql和php在CentOS上。
配置样式Apache支持.htaccess文件,该文件让用户以目录为单位调整设置。这在您不想触摸主配置的共享托管环境中很有用。
nginx不支持.htaccess。所有更改都必须在保持集中的主配置文件中进行。尽管这可以使情况保持更干净并可以提高性能,但它需要更多直接访问服务器。调整NGINX设置时,了解 Web服务器端口如何工作,尤其是当您在单个服务器上管理多个服务时。
关键点: Apache在多用户环境中提供了更大的灵活性。Nginx倾向于配置的性能和简单性。
安全功能这两个服务器都有强大的安全记录记录,并允许自定义规则集限制访问,阻止某些流量模式并限制机器人。
阿帕奇 提供类似的工具 'mod_security',它可以像Web应用程序一样像基本的防火墙。 nginx 提供控制限制请求率并管理如何处理流量的控件。提示: 与任何软件一样,真正的安全好处来自保持服务器的更新和使用智能配置实践。
操作系统支持Apache在几乎所有主要平台上工作,包括Linux,Windows和MacOS。
NGINX的设计考虑了基于UNIX的系统,尽管它也可以在Windows上工作,而在该环境中的功能较少,稳定性较小。
底线: 如果您在Linux上托管,则可以正常工作。对于Windows用户,Apache是更安全的下注。
常见用例Apache是传统基于CMS的网站(例如WordPress)和从.htaccess规则中受益的平台的可靠选择。
NGINX通常用作Apache或其他后端处理器前面的反向代理,负载平衡器或静态内容服务器。该设置利用了这两个工具:从NGINX和Apache兼容的速度。
这是一个逐步指南 使用NGINX作为CPANEL服务器上的反向代理.
情况
最佳选择
具有很多图像的高流量网站
nginx
使用PHP或CMS平台的站点
阿帕奇
与多个用户共享托管
阿帕奇
静态站点交付
nginx
充当反向代理或负载平衡器
nginx
混合环境
两者(一起)
社区和生态系统Apache的时间更长,因此可用的文档,论坛和第三方工具。它还与CPANEL等流行的控制面板很好地集成在一起。
NGINX已迅速发展,现在得到了主要的Web平台和云服务的支持。虽然它的社区更新,但它具有活跃且有据可查。
最后的想法在Apache和NginX之间进行选择取决于您托管的内容以及服务器的结构方式。
去 阿帕奇 如果您重视灵活性,请易于使用动态内容或正在使用共享的托管平台。 选择 nginx 如果性能和处理高流量是关键,尤其是对于静态或API驱动的站点而言。 考虑 一起使用两者:NGINX作为前端反向代理,Apache作为后端处理器。根据您的流量水平和资源需求,托管设置也可能起作用。这是 共享与VPS托管 帮助您决定。