内容
主要区别
Apache和Nginx都是开放源代码Web服务器,即HTTP服务器,可用于静态文件或动态页面。配置它们需要它们以识别用户请求的URL,以在正确的位置进行路由。 Apache和Nginx之间的主要区别在于它们处理流量和连接的方式。在Apache中,提供了多处理模块(MPM)来处理客户端请求,而在Nginx中,通过将连接和客户端置于事件循环中进行异步处理来处理连接和客户端。与Apache相比,即使在很重的负载下,Nginx中CPU和内存的使用也是一致的。
什么是Apache?
Apache被设计为Web服务器。 Apache通过嵌入语言处理器来使用基于常规文件的方法来处理静态内容和动态内容。 Apache通过评估和解释隐藏文件.htaccess中的指令,使每个目录都具有附加配置。在Apache中,模块是动态加载和卸载的。
什么是Nginx?
Nginx被设计为Web服务器以及代理服务器。 Nginx缺乏本地处理动态内容的能力。 Nginx不允许通过评估和解释指令在每个目录的基础上进行其他配置。 Nginx更快地处理请求
关键差异
- 与Apache相比,即使在很重的负载下,Nginx中CPU和内存的使用也是一致的。
- Apache使用传统的基于文件的方法来处理静态内容和动态内容,方法是嵌入语言处理器,而Nginx缺乏本地处理动态内容的能力。
- Apache通过评估和解释称为.htaccess的隐藏文件中的指令使每个目录的附加配置成为可能,而Nginx不允许通过评估和解释的指令使每个目录的附加配置成为可能。
- Apache解释.htaccess,而Nginx不解释.htaccess
- 与Apache相比,Nginx可以更快地处理请求。
- 与Apache相比,Nginx的安全级别较高,因为Nginx不允许将目录级别的配置访问权限分配给单个用户。
- Apache被设计为Web服务器,而Nginx被设计为Web服务器以及代理服务器。
- 在Apache中,模块是动态加载和卸载的,但是在Nginx中,模块不是动态加载的。
- 在Nignx中,通过选择来获取模块,然后在核心软件中进行编译,而在Apache中则是动态完成的。