【Nginx 11】入门--应用场景
写这篇博客的目的
这篇文章不涉及具体配置方法
工作中经常用到Nginx,经常看到什么正向代理,反向代理,负载均衡,静态资源缓存之类的名词,这篇博客主要介绍一下什么时候会用到Nginx,用到它的哪种功能。
处理静态资源
缓解后台服务器压力,将静态资源在不经过tomcat等容器的情况下,返回给客户端,减少tomcat等后端容器接受到的请求数量。为什么用Nginx处理静态资源
正向代理
什么是正向代理
正向代理的特点
Nginx根据接收到的参数,判断出应该到哪个地址,发送什么数据,然后根据这些获取数据,获取后返回给客户端
- Nginx根据传入参数确定去哪个地址获取数据,而不是根据url地址(在未接收到请求之前,不知道会去连接哪台服务器)
- Nginx拥有自己的地址,但是这个地址不是数据来源
举个例子(小明又出现了):
如上所示,我委托小明去快递站B帮我取一件快递,取件号6-4-3001,小明到快递站获取快递,交给我。在这个过程中,小明是根据我告诉他的信息知道应该去快递站B,告诉快递站取件号是6-4-3001,然后获取快递。在这个过程中,小明是我的代理人,代替我去取快递。这个过程中小明起的作用就是正向代理。
- 我们是根据小明的手机号联系的小明,不是通过快递站联系的小明
- 小明与快递站没有关系,他可能去顺丰的快递站,也会帮忙取外卖,也可以帮忙买火车票
- 快递,外卖,火车票都与小明没有关系,小明只是根据客户要求取指定的东西
什么时候会用到正向代理
说实话,我在工作中从来没有用到过正向代理,大概跟我接触的公司都不算太大,我也不是运维有关。能想到的场景就是以下几个
- 在限制连接互联网的内网设置一台代理来连接外网,根据规则限制内网访问的网站(还没研究能不能完成这个)
- 两个局域网之间的通信
- 开放一个公司内网的机器到公网做代理,员工通过这台机器访问公司内网。
反向代理
什么是反向代理
Nginx根据接收到的请求的端口,域名,url,将请求转发给不同的机器,不同的端口(或者直接返回结果),然后将返回的数据返回给客户端。(匹配规则在这里不再介绍,有机会再详细说明)
反向代理特点
- Nginx没有自己的地址,它的地址就是服务器的地址,如www.baidu.com,对外部来讲,它就是数据的生产者
- Ngxin明确的知道应该去哪个服务器获取数据(在未接收到请求之前,已经确定应该连接哪台服务器)
举个例子:
如上所示,我要查询我的快递在不在快递站,打快递站电话(对外公开的域名),首先由前台小明接受我的请求,然后小明根据我的请求,把查询的任务分配给公司内具体的某人,查询出结果返回给小明,小明再告诉我。在这个过程中,小明把我的请求交给谁,具体谁处理,我是不知道的。而且小明只会处理查询之类与快递公司有关的业务。我只知道快递公司对外的联系电话,不知道公司内有小花,小兰这些员工,他们对我来说是透明的,我只与快递公司的代表小明打交道。
- 我是根据快递公司电话(域名)联系到小明的,小明对我来说不具有自己的联系方式
- 对我来说,小明就是数据的生产方,具体小明的数据是从哪获取的,我并不关心。
什么时候会用到反向代理
反向代理应用的地方还是很多的
- 多个项目要用相同域名对外提供服务
- 负载均衡(与反向代理同时配置)
- 微服务
- 非法请求过滤
负载均衡
什么是负载均衡
Nginx根据反向代理规则匹配之后,再根据负载均衡配置的规则,将请求分配给不同的服务器(这些服务器提供的服务都是相同的)
如反向代理中例子
公司有好多员工,可以提供各种不同的服务,C,D,F,G都可以帮忙查询快递有没有在公司,H只负责发件
客户A来公司发件,小明会将快递交给H,客户B来公司询问快递在不在,那么可以选择CDFG,这样就可以有多个人来处理这种事情,达到加快速度的目的。
什么时候会用到负载均衡
业务量增长,单台服务器压力过大,不足以支撑业务,需要多台服务器同时工作分担压力。
未完待续,不定时更新
转载于:https://blog.csdn.net/zhishiqi15836010823/article/details/100569635