【Linux运维】了解Nginx

目录

什么是Nginx?

Nginx的功能

Nginx的安装


什么是Nginx?


Nginx是一款轻量级Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。Nginx代码完全用C语言写成,其特点是占有内存少,并发能力强。说到Web服务器,Apache服务器和IIS服务器是两大巨头;但是运行速度更快、更灵活的Nginx 正在迎头赶上事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东新浪网易腾讯淘宝等。

Nginx的软件类型是开源软件、网页服务器软件。


Nginx的功能有哪些?


  • 正向代理
  • 反向代理
  • 负载均衡
  • HTTP服务器(包含动静分离)

1.反向代理和正向代理

说到代理,首先我们要明确一个概念,所谓代理就是一个代表、一个渠道;

此时就设计到两个角色,一个是被代理角色,一个是目标角色,被代理角色通过这个代理访问目标角色完成一些任务的过程称为

代理操作过程;如同生活中的专卖店~客人到adidas专卖店买了一双鞋,这个专卖店就是代理,被代理角色就是adidas厂家,目标

角色就是用户。

那么,了解到了代理的概念,咱们首先谈谈正向代理吧,有正才有反的说法:

<1>正向代理:

我们平常所说的代理服务器(Proxy Server)提供的就是正向代理服务,其功能是代理网络用户去取得网络信息。代理位于Web

客户端和Web服务器之间,扮演“中间人”的角色。

正向代理也是大家最常接触的到的代理模式,我们会从两个方面来说关于正向代理的处理模式,分别从软件方面和生活方面来解释一下什么叫正向代理:

在如今的网络环境下,我们如果由于技术需要要去访问国外的某些网站,此时你会发现位于国外的某网站我们通过浏览器是没有办法访问的,此时大家可能都会用一个操作FQ进行访问,FQ的方式主要是找到一个可以访问国外网站的代理服务器,我们将请求发送给代理服务器,代理服务器去访问国外的网站,然后将访问到的数据传递给我们!

上述这样的代理模式称为正向代理,正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;

正向代理模式的特点是:屏蔽或者隐藏了真实客户端信息。

<2>反向代理:

我们应该都有过这样的经历,拨打10086客服电话,可能一个地区的10086客服有几个或者几十个,你永远都不需要关心在电话那头的是谁,叫什么,男的,还是女的,漂亮的还是帅气的,你都不关心,你关心的是你的问题能不能得到专业的解答,你只需要拨通了10086的总机号码,电话那头总会有人会回答你,只是有时慢有时快而已。那么这里的10086总机号码就是我们说的反向代理。客户不知道真正提供服务人的是谁。

反向代理隐藏了真实的服务端,当我们请求 www.baidu.com 的时候,就像拨打10086一样,背后可能有成千上万台服务器为我们服务,但具体是哪一台,你不知道,也不需要知道,你只需要知道反向代理服务器是谁就好了,www.baidu.com 就是我们的反向代理服务器,反向代理服务器会帮我们把请求转发到真实的服务器那里去。

反向代理:主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息!

反向代理的特点是:隐藏了真实的服务端。

使用反向代理的优势有很多,比如,隐藏和保护服务器资源、负载均衡,缓存静态内容,加密和SSL加速等。

通常情况下,我们在实际项目操作时,正向代理和反向代理很有可能会存在在一个应用场景中,正向代理代理客户端的请求去访问目标服务器,目标服务器是一个反向单利服务器,反向代理了多台真实的业务处理服务器。具体的拓扑图如下:

2.负载均衡

负载均衡也是Nginx常用的一个功能,负载均衡其意思就是分摊到多个操作单元上进行执行。

负载均衡:多在高并发情况下需要使用。其原理就是将数据流量分摊到多个服务器执行,减轻每台服务器的压力,多台服务器(集群)共同完成工作任务,从而提高了数据的吞吐量。

比如:当网站访问量非常大,网站站长开心赚钱的同时,也摊上事儿了。因为网站越来越慢,一台服务器已经不够用了。于是将同一个应用部署在多台服务器上,将大量用户的请求分配给多台机器处理。同时带来的好处是,其中一台服务器万一挂了,只要还有其他服务器正常运行,就不会影响用户使用。

Nginx内置的负载均衡策略有3种:轮询加权轮询IP hash。同时支持扩展策略,完全可以自己写一套规则交给Nginx去执行。

(1)轮询:这种策略简单易行,将请求平均的分配给每个服务器去处理。

(2)加权轮询:升级版的轮询策略,权重越大的服务器会被分配越多的请求数量。

(3)IP hash:对客户端请求的IP进行hash操作,然后根据hash结果将同一个客户端IP的请求分发给同一台服务器进行处理,可以解决session不共享的问题。

   3. 动静分离

            Nginx提供的动静分离是指把动态请求和静态请求分离开,合适的服务器处理相应的请求,使整个服务器系统的性能、效率更高。

            Nginx可以根据配置对不同的请求做不同转发,这是动态分离的基础。静态请求对应的静态资源可以直接放在Nginx上做缓冲,更好的做法是放在相应的缓冲服务器上。动态请求由相应的后端服务器处理。


Nginx在CentOS上的安装


请看下一篇博客:https://blog.csdn.net/Ginny97/article/details/99173094

初次学习,若有不足,请多多指导。后续研究精彩正在继续,敬请期待~


 

发布了63 篇原创文章 · 获赞 13 · 访问量 8541

猜你喜欢

转载自blog.csdn.net/Ginny97/article/details/99084972
今日推荐