服务器配置

Nginx与Apache有什么区别?

我的站长站 2020-04-25 人阅读

Apache & Nginx

Apache,指的应该是 Apache 软件基金会下的一个项目——Apache HTTP Server Project;

Nginx 同样也是一款开源的 HTTP 服务器软件(当然它也可以作为邮件dai理服务器、通用的TCP dai理服务器)。

HTTP 服务器本质上也是一种应用程序——它通常运行在服务器之上,绑定服务器的 IP 地址并监听某一个 TCP 端口来接收并处理 HTTP 请求,这样客户端(一般来说是 IE, Firefox,Chrome 这样的浏览器)就能够通过 HTTP 协议来获取服务器上的网页(HTML 格式)、文档(PDF 格式)、音频(MP4 格式)、视频(MOV 格式)等等资源。下图描述的就是这一过程:

不仅仅是 Apache HTTP Server 和 Nginx,绝大多数编程语言所包含的类库中也都实现了简单的 HTTP 服务器方便开发者使用:

HttpServer (Java HTTP Server )(https://docs.oracle.com/javase/8/docs/jre/api/net/httpserver/spec/com/sun/net/httpserver/HttpServer.html)Python SimpleHTTPServer(https://docs.python.org/2/library/simplehttpserver.html)

使用这些类库能够非常容易的运行一个 HTTP 服务器,它们都能够通过绑定IP地址并监听 TCP 端口来提供 HTTP 服务。

Apache Tomcat

Apache Tomcat 则是 Apache 基金会下的另外一个项目,与 Apache HTTP Server 相比,Tomcat 能够动态的生成资源并返回到客户端。Apache HTTP Server 和 Nginx 都能够将某一个文本文件的内容通过 HTTP 协议返回到客户端,但是这个文本文件的内容是固定的——也就是说无论何时、任何人访问它得到的内容都是完全相同的,这样的资源我们称之为静态资源。动态资源则与之相反,在不同的时间、不同的客户端访问得到的内容是不同的,例如:

包含显示当前时间的页面显示当前IP地址的页面

Apache HTTP Server 和 Nginx 本身不支持生成动态页面,但它们可以通过其他模块来支持(例如通过 Shell、PHP、Python 脚本程序来动态生成内容)。

如果想要使用 Java 程序来动态生成资源内容,使用这一类 HTTP 服务器很难做到。Java Servlet 技术以及衍生的 Java Server Pages 技术可以让 Java 程序也具有处理 HTTP 请求并且返回内容(由程序动态控制)的能力,Tomcat 正是支持运行 Servlet/JSP 应用程序的容器(Container):

Tomcat 运行在 JVM 之上,它和 HTTP 服务器一样,绑定 IP 地址并监听 TCP 端口,同时还包含以下指责:

管理 Servlet 程序的生命周期将 URL 映射到指定的 Servlet 进行处理与 Servlet 程序合作处理 HTTP 请求——根据 HTTP 请求生成 HttpServletResponse 对象并传递给 Servlet 进行处理,将 Servlet 中的 HttpServletResponse 对象生成的内容返回给浏览器

虽然 Tomcat 也可以认为是 HTTP 服务器,但通常它仍然会和 Nginx 配合在一起使用:

动静态资源分离——运用 Nginx 的反向dai理功能分发请求:所有动态资源的请求交给 Tomcat,而静态资源的请求(例如图片、视频、CSS、JavaScript 文件等)则直接由Nginx 返回到浏览器,这样能大大减轻 Tomcat 的压力。负载均衡,当业务压力增大时,可能一个 Tomcat 的实例不足以处理,那么这时可以启动多个 Tomcat 实例进行水平扩展,而 Nginx 的负载均衡功能可以把请求通过算法分发到各个不同的实例进行处理。

相关专题
nginx
nginx
2022-11-28 19

Nginx是一个高性能的HTTP和反向代理web服务器,也是站长常见的网站环境之一.nginx凭借高性能低消耗近几年越来越多站长使用,学习好nginx也成为站长必备知识点.我的...

相关推荐
  • nginx教程
  • nginx限制并发数和限制下载速度方法

    分享一篇最近我的站长站刚学的nginx限制并发数和限制下载速度方法,可以限制一个IP同一时间只允许发起一个连接,如果发起多个链接,会提示503。另外还支持限制的下载速度,用户在开始的下载500m之前,下载速度可以飙到最大,但是一旦下载的文件大小超过了500m,下...

    服务器配置 109 2年前
  • nginx新手入门-认识location匹配规则

    我们在配置nginx时,会看到默认的nginx配置规则内有很多的location,这些location每一段就代表一个规则,location的编写方法需要会一点正则,不会的可以继续看我的站长站为大家带来的location新手入门教程。完整nginx配置规则如下:server{listen 80;server_n...

    服务器配置 28 2年前
  • Nginx与Apache有什么区别?

    Apache & NginxApache,指的应该是 Apache 软件基金会下的一个项目——Apache HTTP Server Project;Nginx 同样也是一款开源的 HTTP 服务器软件(当然它也可以作为邮件代理服务器、通用的TCP 代理服务器)。HTTP 服务器本质上也是一种应用程序——它通常运...

    服务器配置 144 4年前
最新更新