Nginx入门(看这一篇就够了!!)

1、Nginx的介绍

  Nginx是一款轻量级的Web服务器/反向代理服务器以及电子邮件(IMAP/POP3)代理服务器,第一个公开版本发布于2004年,其源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。

  中国大陆使用Nginx的网站有:百度、京东、新浪、网易、腾讯、淘宝等。

2、Nginx的特点

 2.1、反向代理

  2.1.1 什么是代理?

   客户端与服务端之间添加了一个代理服务器,客户端和服务端之间通过下面的方式进行资源访问与返回: 客户端 -->代理方-->服务端,服务端-->代理方-->客户端。

没有代理的情况:

有代理的情况:

  2.1.2 反向代理概括

  代理方 代理了 服务端,当客户端访问服务器时,实际上需要先访问反向代理服务器,反向代理服务器通过去选择目标服务器获取数据后,在返回数据给客户端。

  2.1.3 反向代理的特点

(1)客户端对代理无感知

(2)服务器暴露的是反向代理的服务器的地址而不是真实服务器的地址

(3)在服务器中配置代理服务器

  2.1.4 正向代理

概括: 代理服务器代理客户端去定向访问目标服务器,是在客户端配置代理服务器的。

例子:假如你需要访问一个国内无法访问或者访问很慢的服务器,你可以通过挂梯子的方式去访问对应的服务器,这里的梯子就是正向代理的代理方,它可以代替你访问目标服务器。

  2.1.5 正向代理与反向代理的区别

正向代理:正向代理隐藏了客户端的真实身份,使得服务端看到的是代理服务器的请求,而不是客户端的直接请求。正向代理作用于客户端。

反向代理:反向代理隐藏了后端服务器的真实身份,客户端不知道其请求被转发到了哪个具体的服务器。反向代理作用于服务端。

总结一句话来讲就是:正向代理代理的是客户端,反向代理代理的是服务端。

 2.2、负载均衡

  2.2.1 负载均衡概括

 当业务量特别大的时候,用户的请求特别多,一台服务器无法满足业务需求,就需要有很多台服务器。对于这些服务器,当请求发到代理服务器时,如何进行分配对应的请求,这个过程就是负载均衡

  2.2.1 负载均衡作用

  通过将流量均匀分配到多个后端服务器上,从而提高系统的整体处理能力和响应速度,增强服务的可靠性和高可用性,并能有效处理服务器故障和流量高峰,保证服务的连续性和稳定性。

  2.2.1 负载均衡算法

Nginx用到的负载均衡的算法有很多种,这里介绍简单的三种。

        2.2.1.1  基于轮询的算法(默认)

每个请求按时间顺序逐一分配到不同的后端服务器后端服务器down后会被自动剔除。

        2.2.1.2  基于权重的算法

指定轮询的几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

        2.2.1.3  基于ip_hash的算法

如果用户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器,每个请求按访问ip的hash结果分配这样每个方可固定访问一个后端服务器,可以解决session的问题。

3、Nginx的优点

 3.1、占有内存小

 Nginx设计的初衷之一就是高效的内存使用。它采用了事件驱动(event-driven)和异步非阻塞(asynchronous n

on-blocking)架构,这使得Nginx在处理大量并发连接时能保持低内存消耗。(这里不对两个架构进行介绍),这种设计使得Nginx在相同硬件条件下,能够比传统的进程/线程模型的服务器(如Apache HTTP Server)消耗更少的内存。

 3.2、并发能力强

  Nginx的高并发处理能力得益于其事件驱动和异步非阻塞架构,其具体表现包括:

        (1)单进程/多线程模型,Nginx主要依赖少量的工作进程(worker processes),每个进程可以处理数千个并发连接。这避免了线程或进程切换带来的开销。

        (2)轻量级资源消耗,每个并发连接占用的资源非常少,这使得Nginx能够处理大量并发请求而不容易出现资源瓶颈。

        (3)高效连接复用,Nginx在处理HTTP长连接和保持连接(keep-alive)方面非常高效,这进一步提高了其并发处理能力。

  这些特点使得Nginx在高并发场景下表现优异,常被用作反向代理服务器、负载均衡器和静态内容服务器。

 3.3、性能高

Nginx的高性能体现在多个方面,包括请求处理速度快、响应时间短和吞吐量高。表现有:高效的请求处理、快速静态内容服务、负载均衡和缓存。这些性能优势使得Nginx在高流量和高负载的应用场景中广受欢迎,如大型网站、视频流媒体和在线服务等。

  这里着重讲解一下快速静态内容服务,Nginx对静态内容的处理非常高效,能够以极低的延迟提供静态文件,适用于静态网站和内容分发网络(CDN)。

 3.4、支持热部署

  Nginx支持热部署(Hot Deployment),即在不停止服务的情况下进行配置更新和程序升级,具体表现为平滑升级和无缝重启。

  • 27
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值