[toc]
nginx代理
1.代理分类
nginx代理分为正向代理和反向代理
-
正向代理代理的对象是客户端
-
反向代理代理的对象是服务端
正向代理
概念
在如今的网络环境下,我们如果由于技术需要要去访问国外的某些网站,此时你会发现位于国外的某网站我们通过浏览器是没有办法访问的,此时大家可能都会用一个操作FQ进行访问,FQ的方式主要是找到一个可以访问国外网站的代理服务器,我们将请求发送给代理服务器,代理服务器去访问国外的网站,然后将访问到的数据传递给我们!
上述这样的代理模式称为正向代理,正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。
示意图
反向代理
概念
多个客户端给nginx服务器发送请求,nginx服务器接收到请求之后,按照一定的规则分发给了后端的业务处理服务器进行处理。此时请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的就不明确了,nginx扮演的就是一个反向代理角色
反向代理,主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息!
示意图
项目场景
通常情况下,我们在实际项目操作时,正向代理和反向代理很有可能会存在在一个应用场景中,正向代理代理客户端的请求去访问目标服务器,目标服务器是一个反向代理服务器,反向代理了多台真实的业务处理服务器。公司的生产环境就是如下图所示,公司的核心业务SASS平台是这样的流程
域名解析到了阿里云的SLB,通过SLB把请求分发到公司公共nginx(两台ECS),然后又在公共nginx上配置了具体的转发规则(location的匹配,upstream等),最后把请求的流量转发到ECS中,下图中的正向代理就相当于我们的SLB,反向代理就相当于我们的公共nginx,业务服务器就相当于后端的真实web服务ECS
具体的拓扑图如下
2.nginx代理配置相关
语法
字段 | 说明 |
---|---|
Syntax: | proxy_pass URL; |
Default: | — |
Context: | location, if in location, limit_except |