在HTTP通信链上,客户端和目标服务器之间通常存在某些中转代理服务器,它们提供对目标资源的中转访问。一个HTTP请求可能被多个代理服务器转发,后面的服务器称为前面服务器的上游服务器。代理服务器按照其使用方式和作用,分为正向代理服务器,反向代理服务器和透明代理服务器。
正向代理要求客户端自己设置代理服务器的地址。客户的每次请求都将直接发送到该代理服务器,并由代理服务器来请求目标资源。比如处于防火墙内的局域网机器要访问Internet,或者要访问一些被屏蔽掉的国外网站,就需要使用正向代理服务器。
反向代理则被设置在服务器端,因而客户端无需进行任何设置。反向代理是指用代理服务器来接收Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从内部服务器上得到的结果返回给客户端。这种情况下,代理服务器对外就表现为一个真实的服务器。各大网站通常分区域设置了多个代理服务器,所以在不同的地方同一个域名可能得到不同的IP地址,因为这些IP地址实际上是代理服务器的IP地址。
HTTP代理服务器的工作原理
如图所示,正向代理服务器和客户端主机处于同一个逻辑网络中。该逻辑网络可以是一个本地LAN,也可以是一个更大的网络。反向代理服务器和真正的Web服务器也位于同一个逻辑网络中,这通常由提供网站的公司来配置和管理。
透明代理只能设置在网关上。用户访问Internet的数据报必然都经过网关,如果在网关上设置代理,则该代理对用户来说显然是透明的。透明代理可以看作正向代理的一种特殊情况。
代理服务器通常还提供缓存目标资源的功能,这样用户下次访问同一资源时速度将很快。优秀的开源软件squid,varnish都是提供了缓存能力的代理服务器软件,其中squid支持所有代理方式,而varnish仅能用作反向代理。
Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。
nginx的代理分为正向代理和反向代理,下面来简单介绍下这2中代理,后续的文章会讲解反向代理和负载均衡的使用
1.什么是代理
所谓的代理就是一个代表、渠道。代理又涉及到2个角色 被代理角色 和 目标角色 。比如用户去耐克专卖店买鞋,那么专卖店就是 代理 , 被代理角色 是耐克厂家, 目标角色 就是用户
2.正向代理
假设我现在需要去访问facebook,但是由于墙的问题我无法访问。此时大家可能都会用一个操作FQ(番羽 土啬)进行访问,FQ的方式主要是找到一个可以访问国外网站的代理服务器,我们将请求发送给代理服务器,代理服务器去访问国外的网站,然后将访问到的数据传递给我们!
上述这样的代理模式称为正向代理,正向代理最大的特点是 客户端非常明确要访问的服务器地址 ;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式 屏蔽或者隐藏了真实客户端信息 。
3.反向代理
明白了什么是正向代理,我们继续看关于反向代理的处理方式,举例如我大天朝的某宝网站,每天同时连接到网站的访问人数已经爆表,单个服务器远远不能满足人民日益增长的购买欲望了,此时就出现了一个大家耳熟能详的名词:分布式部署;也就是通过部署多台服务器来解决访问人数限制的问题;某宝网站中大部分功能也是直接使用nginx进行反向代理实现的
那么反向代理具体是通过什么样的方式实现的分布式的集群操作呢,我们先看一个示意图:
通过上述的图解大家就可以看清楚了,多个客户端给服务器发送的请求,nginx服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。此时请求的来源也就是 客户端是明确 的,但是请求具体由哪台服务器处理的并不明确了,nginx扮演的就是一个反向代理角色
反向代理,主要用于服务器集群分布式部署的情况下,反向代理 隐藏了服务器 的信息!
它是预构建的 docker 镜像提供,使您能够轻松地转发到在家里或其他地方运行的网站,包括免费的 SSL ,而无需对 Nginx 或 Letsencrypt 有太多了解。
在安装 nginx-proxy-manager 前需要提前安装好 docker 和 docker-compose 并保证 80 81 443 端口未被占用
在服务器中创 nginx-proxy-manager 目录
进入到 nginx-proxy-manager 目录中
在 nginx-proxy-manager 目录中创建 docker-compose.yaml 文件
启动 nginx-proxy-manager
注意:到这里你可以通过 http://127.0.0.1:81 来访问界面了
注意:使用此默认用户名登录后,系统将立即要求你修改详细信息和密码
注意:这样申请证书比较麻烦,需要你一个一个的去申请,那么我们可以通过申请通配符证书(泛域名证书)来解决这个问题
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)