Nginx应用场景,Nginx是用来干什么的

Nginx可以用来干什么

  • 写这篇博客的目的
    • 处理静态资源
    • 正向代理
      • 什么是正向代理
      • 什么时候会用到正向代理
    • 反向代理
      • 什么是反向代理
      • 什么时候会用到反向代理
    • 负载均衡
      • 什么是负载均衡
      • 什么时候会用到负载均衡
    • 未完待续,不定时更新

写这篇博客的目的

这篇文章不涉及具体配置方法
工作中经常用到Nginx,经常看到什么正向代理,反向代理,负载均衡,静态资源缓存之类的名词,这篇博客主要介绍一下什么时候会用到Nginx,用到它的哪种功能。

处理静态资源

缓解后台服务器压力,将静态资源在不经过tomcat等容器的情况下,返回给客户端,减少tomcat等后端容器接受到的请求数量。为什么用Nginx处理静态资源

正向代理

什么是正向代理

正向代理的特点
Nginx根据接收到的参数,判断出应该到哪个地址,发送什么数据,然后根据这些获取数据,获取后返回给客户端

  • Nginx根据传入参数确定去哪个地址获取数据,而不是根据url地址(在未接收到请求之前,不知道会去连接哪台服务器)
  • Nginx拥有自己的地址,但是这个地址不是数据来源
    举个例子(小明又出现了):
委托小明去快递站B取快递
取快递
小明 联系方式xxxx
快递站B
要求Nginx去获取www.baidu.com的内容
根据浏览器给的参数www.baidu.com去获取内容
浏览器
Nginx ip地址 xxx.xxx.xxx.xxx
baidu服务器

如上所示,我委托小明去快递站B帮我取一件快递,取件号6-4-3001,小明到快递站获取快递,交给我。在这个过程中,小明是根据我告诉他的信息知道应该去快递站B,告诉快递站取件号是6-4-3001,然后获取快递。在这个过程中,小明是我的代理人,代替我去取快递。这个过程中小明起的作用就是正向代理。

  • 我们是根据小明的手机号联系的小明,不是通过快递站联系的小明
  • 小明与快递站没有关系,他可能去顺丰的快递站,也会帮忙取外卖,也可以帮忙买火车票
  • 快递,外卖,火车票都与小明没有关系,小明只是根据客户要求取指定的东西

什么时候会用到正向代理

说实话,我在工作中从来没有用到过正向代理,大概跟我接触的公司都不算太大,我也不是运维有关。能想到的场景就是以下几个

  • 在限制连接互联网的内网设置一台代理来连接外网,根据规则限制内网访问的网站(还没研究能不能完成这个)
  • 两个局域网之间的通信
  • 开放一个公司内网的机器到公网做代理,员工通过这台机器访问公司内网。

反向代理

什么是反向代理

Nginx根据接收到的请求的端口,域名,url,将请求转发给不同的机器,不同的端口(或者直接返回结果),然后将返回的数据返回给客户端。(匹配规则在这里不再介绍,有机会再详细说明)

反向代理特点

  • Nginx没有自己的地址,它的地址就是服务器的地址,如www.baidu.com,对外部来讲,它就是数据的生产者
  • Ngxin明确的知道应该去哪个服务器获取数据(在未接收到请求之前,已经确定应该连接哪台服务器)
    举个例子:
打快递公司电话xxxxx问我的快递在没在他们那
问员工C快递在不在这
小明 快递公司前台
快递公司员工C
www.baidu.com
根据配置分配给后方服务器
浏览器
Nginx 域名www.baidu.com
baidu服务器

如上所示,我要查询我的快递在不在快递站,打快递站电话(对外公开的域名),首先由前台小明接受我的请求,然后小明根据我的请求,把查询的任务分配给公司内具体的某人,查询出结果返回给小明,小明再告诉我。在这个过程中,小明把我的请求交给谁,具体谁处理,我是不知道的。而且小明只会处理查询之类与快递公司有关的业务。我只知道快递公司对外的联系电话,不知道公司内有小花,小兰这些员工,他们对我来说是透明的,我只与快递公司的代表小明打交道。

  • 我是根据快递公司电话(域名)联系到小明的,小明对我来说不具有自己的联系方式
  • 对我来说,小明就是数据的生产方,具体小明的数据是从哪获取的,我并不关心。

什么时候会用到反向代理

反向代理应用的地方还是很多的

  • 多个项目要用相同域名对外提供服务
  • 负载均衡(与反向代理同时配置)
  • 微服务
  • 非法请求过滤

负载均衡

什么是负载均衡

Nginx根据反向代理规则匹配之后,再根据负载均衡配置的规则,将请求分配给不同的服务器(这些服务器提供的服务都是相同的)
如反向代理中例子

打快递公司电话xxxxx问我的快递在没在他们那
选择一个员工C问快递在不在这
小明 快递公司前台
快递公司员工C
快递公司员工D
快递公司员工F
快递公司员工G
只负责发件的快递员工H

公司有好多员工,可以提供各种不同的服务,C,D,F,G都可以帮忙查询快递有没有在公司,H只负责发件
客户A来公司发件,小明会将快递交给H,客户B来公司询问快递在不在,那么可以选择CDFG,这样就可以有多个人来处理这种事情,达到加快速度的目的。

什么时候会用到负载均衡

业务量增长,单台服务器压力过大,不足以支撑业务,需要多台服务器同时工作分担压力。

未完待续,不定时更新

你可能感兴趣的:(Nginx,nginx,应用场景)