Nginx简介

Nginx简介

1.1 Nginx简介

Nginx(发音为 engine x)是一个开源的、高性能的HTTP和反向代理服务器,同时也提供了IMAP/POP3/SMTP邮件服务器。Nginx以其稳定性、高性能、丰富的功能集、简单的配置文件和低系统资源消耗而闻名。Nginx 的设计目标是提供一个高效的Web服务器,同时能够处理大量的并发连接和请求,

Nginx的架构基于事件驱动和异步非阻塞I/O,相比于传统的 Web 服务器,如Apache,Nginx 的内存占用更少,启动速度更快,在高并发场景下表现优异。

Nginx的功能非常丰富,包括静态文件服务、反向代理、负载均衡、HTTP/2支持、WebSocket代理、SSL/TLS加密、URL重写、访问控制、HTTP缓存等。同时,Nginx还支持大量的第三方模块,这些模块可以扩展Nginx的功能以满足特定的需求。

在学习 Nginx 之前先来介绍几个概念:正向代理、反向代理、负载均衡、集群、分布式。

1.2 正向代理

经常听到正向代理,反向代理 ,Nginx 是反向反向代理服务器,那么到底什么是正向代理,什么是反向代理呢?

我们平时上网,访问不了 Google 等网站,需要翻墙,其实就是通过一台中间的机器,这台机器可以被我们访问,也可以访问到 Google,于是让这台中间的代理服务转发我们的请求到 Google 的服务器,从而实现访问 Google,这个过程就是正向代理。

image-20241202142833723

正向代理中,代理服务器是代理了客户端,和服务器进行交互,服务器并不知道真正的客户端是谁,甚至不知道是代理服务器访问自己,因此可以隐藏客户端的信息。

但是客户端是知道自己使用了代理服务器的,一般还需要配置代理服务器的 IP 等信息,也就是说正向代理服务器是客户端搭建的(当然你也可以自己购买VPN,反正和服务器端没有关系)。

1.3 反向代理

反向代理是指代理服务器来接受客户端的请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给客户端,此时代理服务器对外就表现为一个反向代理服务器。

image-20241202143852943

反向代理中,代理服务器是服务器的代理,代理服务器来接收客户端的请求。此时对于客户端而言是不知道有代理服务器的,而对于服务器而言,暴露的是代理服务器地址,隐藏了真实服务器的地址。反向代理服务器是服务器端搭建的,客户端不需要任何设置。

Nginx就是一个反向代理服务器。

1.4 负载均衡

负载均衡就是当我们的服务器接收到的请求太多,压力太大,此时可能导致服务器性能下降或不可用,为了解决这个问题,我们可以搭建多台服务器,将请求分配到多个服务器上进行处理,从而保证服务的可用性,即使有服务器挂掉,服务也能正常运行,通过负载均衡,我们可以动态的增加或减少服务器的数量,增强网站的可扩展性,这样也利于我们更新服务。

而 Nginx 作为一款高性能的 Web 服务器和反向代理服务器,可以通过其负载均衡功能,将接收到的客户端请求,根据配置的负载均衡策略(如轮询、最少连接、IP哈希等)转发给多个后端服务器,从而实现负载均衡。

image-20241202144400672

1.5 集群

一个项目部署在一台服务器,请求太多,压力太大,于是将项目部署在多台服务器上,由多台计算机组成的一个网络,共同完成工作,这个就叫集群。集群可以提高系统的性能、可用性。

负载均衡是集群中的一种技术手段,可以将请求分配到不同的服务器上。

1.6 分布式

分布式和负载均衡、集群的概念不在一个维度,需要单独讨论。

当一个项目包含的模块或服务太多(例如包含了商品、订单、支付等服务),可以将整个项目拆分成多个子模块或服务,在不同的服务器上部署不同的子模块或服务,我们还可以对各个子模块(例如订单模块)使用负载均衡做集群部署,服务的性能和可用性。


Nginx简介
http://ziiix.cn/2024/12/02/Nginx简介/
作者
John Doe
发布于
2024年12月2日
许可协议