课堂课题:
什么叫反向代理?为什么要使用反向代理?
关联任务:
任务五
直播时间:
2019-05-28 15:30:00
课堂内容:
视频链接:
PPT链接:
提交按钮:
小课堂内容格式
标题:
【修真院xx(职业)小课堂】课题名称
开场语:
大家好,我是IT修真院XX分院第X期的学员XX,一枚正直纯洁善良的XX程序员,今天给大家分享一下,修真院官网XX(职业)任务X,深度思考中的知识点——XXX
(1)背景介绍:
背景介绍的时候,尽可能的要宽广,讲清楚来龙去脉,讲清楚为什么会需要这个技术。
(2)知识剖析:
讲知识点的时候,尽可能的成体系,学会成体系的去给别人介绍知识。现在很多做的都是零散的,没有分类。
(3)常见问题:
最少列出1个常见问题。
(4)解决方案:
写清楚常见问题的解决方案。
(5)编码实战:
尽可能的去寻找在真实项目中在用的。如果你能找到某个网站在用你说的知识点,这是最好的。学以致用,否则当成练习题就没有意义了。多准备一些demo,讲解过程中将知识点和demo结合,便于大家理解所讲解的知识点。
(6)拓展思考:
知识点之外的拓展思考,由分享人进行讲解,这些东西就是所谓的深度,也是一个人技术水准高低比较的表现。
(7)参考文献:
引入参加文献的时候,在引用的句子后面加上序号【1】。参考文献中列出详细来源。不要去抄别人的东西,这是一个基本的态度。
(8)更多讨论:
Q1:提问人:问题?
A1:回答人(可以是分享人,也可以是其他学员):回答
Q2:提问人:问题?
A2:回答人(可以是分享人,也可以是其他学员):回答
Q3:提问人:问题?
A3:回答人(可以是分享人,也可以是其他学员):回答
(9)鸣谢:
感谢XX、XX师兄,此教程是在他们之前技术分享的基础上完善而成。
(10)结束语:
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
什么叫反向代理?为什么要使用反向代理?
大家好,我是IT修真院西安分院第6期的学员王鹏,一枚正直纯洁善良的XX程序员,今天给大家分享一下,修真院官网Java任务二,深度思考中的知识点——什么叫反向代理?为什么要使用反向代理?
(1)背景介绍:
关于代理:
首先要明确一个概念,所谓代理就是一个代表,一个渠道。此时就涉及到两个角色,一个是被代理角色,一个是目标角色,被代理角色通过这个代理访问目标角色完成一些任务的过程就称为代理操作过程;如同生活中的专卖店~客人到adidas专卖店买了一双鞋,这个专卖店就是代理,被代理角色就是adidas厂家,目标角色就是用户。
(2)知识剖析:
什么是正向代理:
如今的网络环境下,我们如果由于技术需要要去访问国外的某些网站,此时你会发现位于国外的某网站我们通过浏览器是没有办法访问的,此时大家可能都会用一个操作FQ进行访问,FQ的方式主要是找到一个可以访问国外网站的代理服务器,我们将请求发送给代理服务器,代理服务器去访问国外的网站,然后将访问到的数据传递给我们!
上述这样的代理模式称为正向代理,正向代理代理的对象是客户端,它屏蔽或者隐藏了真实客户端信息,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求。
作用:
(1)访问原来无法访问的资源,比如Google。
(2)可以做缓存,加速访问资源。
(3)对客户端访问授权,上网进行认证。
(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息。
什么是反向代理:
当我们请求www.baidu.com的时候,就像拨打10086一样,背后可能有成千上万台服务器为我们服务,但具体是哪一台,你不知道,也不需要知道,你只需要知道反向代理服务器是谁就好了,www.baidu.com 就是我们的反向代理服务器,反向代理服务器会帮我们把请求转发到真实的服务器那里去。
上述这样的代理模式称为反向代理,与正向代理相反,它代理的对象是服务端,隐藏了真实的服务端,客户不知道真正提供服务人的是谁。
作用:
(1)保证内网的安全,可以使用反向代理提供WAF功能,阻止web攻击。
(2)负载均衡,通过反向代理服务器来优化网站的负载。
多在高并发情况下需要使用。其原理就是将数据流量分摊到多个服务器执行,减轻每台服务器的压力,
多台服务器(集群)共同完成工作任务,从而提高了数据的吞吐量。
(3)常见问题:
正向代理与反向代理的区别
反向代理的体现
Nginx的功能
(4)解决方案:
区别:
从用途方面来讲:
正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性减少网络使用率。反向代理的典型用途是将 防火墙后面的服务器提供给Internet用户访问。反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。</p>
从安全方面来讲:
正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此必须采取安全措施以确保仅为经过授权的客户端提供服务。
反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。
体现:
Nginx服务器,是一个轻量级、高性能、稳定性高、并发性好的HTTP服务器和反向代理服务器,也是由于其特性,应用非常广。
功能:
反向代理、负载均衡、动静分离。
(5)编码实战:
nginx反向代理,可以在默认的server模块上更改,也可以在http模块添加server模块
#需要代理的IP和端口号
upstream resinserver1{
server 39.100.40.1:8080;
}
#虚拟主机配置
server{
#监听端口,默认80
listen 80;
#监听域名
server_name resin;
location / {
proxy_pass http://resinserver1;
#定义服务器的默认网站根目录位置
root html;
#定义首页索引文件名
index index.html index.html;
}
}
upstream tomcatserver1{
server 39.100.40.1:8081;
}
server{
listen 80;
server_name tomcat;
location / {
proxy_pass http://tomcatserver1;
root html;
index index.html index.html;
}
}
(6)拓展思考:
什么是DNS?
DNS(Domain Name System,域名系统),简单的说:就是把我们输入的网站域名翻译成IP地址的系统。
比如我们想访问百度,我们会在网址栏里键入www.baidu.com,但是电脑不会理解这串字符的含义。
于是就把这串字符发送给DNS(域名解析系统),系统将地址解析119.75.217.109(实际上能理解的就是这个数字),
并转向这个IP地址,于是我们就成功的打开了百度的网页。
(7)参考文献:
【1】https://blog.csdn.net/tsummerb/article/details/79248015
【2】https://www.zhihu.com/question/24723688
【3】https://www.cnblogs.com/Anker/p/6056540.html
【4】https://blog.csdn.net/ysmh2008/article/details/73658005
(8)更多讨论:
具体什么是反向代理?
举例如我大天朝的某宝网站,每天同时连接到网站的访问人数已经爆表,单个服务器远远不能满足人民日益增长的购买欲望了,此时就出现了一个大家耳熟能详的名词:分布式部署;也就是通过部署多台服务器来解决访问人数限制的问题;某宝网站中大部分功能也是直接使用nginx进行反向代理实现的。
比如双11(多个客户端)给服务器发送的请求,nginx服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。此时~请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确了,nginx扮演的就是一个反向代理角色。
反向代理,主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息!
(9)结束语:
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~