IT修真院·小课堂丨互联网职业小课堂在线学习平台

课堂课题:

什么叫反向代理?为什么要使用反向代理?

关联任务:

任务五

直播时间:

2019-03-21 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)结束语:

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

什么叫反向代理?为什么要使用反向代理?     中品

辅导师兄 [真传弟子]JAVA-童志荣


什么叫反向代理?为什么要使用反向代理?


大家好,我是IT修真院西安分院第6期的学员蔡凯,一枚正直纯洁善良的Java程序员,今天给大家分享一下,修真院官网Java任务二,深度思考中的知识点——什么叫反向代理?为什么要使用反向代理?


(1)背景介绍:


代理

在认识反向代理之前,我们要先了解一下代理,也就是正向代理

正向代理类似一个跳板机,代理访问外部资源

正向代理代理的对象是客户端,它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求

反向代理

反向代理代理的对象是服务端,它隐藏了真实的服务端,当我们请求 www.baidu.com 的时候,就像拨打10086一样,背后可能有成千上万台服务器为我们服务,

但具体是哪一台,你不知道,也不需要知道,你只需要知道反向代理服务器是谁就好了,www.baidu.com 就是我们的反向代理服务器,反向代理服务器会帮我们把请求转发到真实的服务器那里去。



(2)知识剖析:


反向代理的作用

1.保证内网的安全,可以使用反向代理提供WAF功能,阻止web攻击


在防火墙外部设置一个代理服务器作为内容服务器的替身。当外部客户机尝试访问内容服务器时,会将其送到代理服务器。实际内容位于内容服务器上,在防火墙内部受到安全保护。

代理服务器位于防火墙外部,在客户机看来就像是内容服务器。

当客户机向站点提出请求时,请求将转到代理服务器。然后,代理服务器通过防火墙中的特定通路,将客户机的请求发送到内容服务器。内容服务器再通过该通道将结果回传给代理服务器。代理服务器将检索到的信息发送给客户机,好像代理服务器就是实际的内容服务器。

如果内容服务器返回错误消息,代理服务器会先行截取该消息并更改标头中列出的任何 URL,然后再将消息发送给客户机。

如此可防止外部客户机获取内部内容服务器的重定向 URL。

这样,代理服务器就在安全数据库和可能的恶意攻击之间提供了又一道屏障。与有权访问整个数据库的情况相对比,就算是侥幸攻击成功,作恶者充其量也仅限于访问单个事务中所涉及的信息。

未经授权的用户无法访问到真正的内容服务器,因为防火墙通路只允许代理服务器有权进行访问。


2.负载均衡,通过反向代理服务器来优化网站的负载


在一个组织内使用多个代理服务器来平衡各 Web 服务器间的网络负载。

在此模型中,可以利用代理服务器的高速缓存特性,创建一个用于负载平衡的服务器池。此时,代理服务器可以位于防火墙的任意一侧。

如果 Web 服务器每天都会接收大量的请求,则可以使用代理服务器分担 Web 服务器的负载并提高网络访问效率。

对于客户机发往真正服务器的请求,代理服务器起着中间调停者的作用。代理服务器会将所请求的文档存入高速缓存。

如果有不止一个代理服务器,DNS 可以采用“循环复用法”选择其 IP 地址,随机地为请求选择路由。

客户机每次都使用同一个 URL,但请求所采取的路由每次都可能经过不同的代理服务器。

可以使用多个代理服务器来处理对一个高用量内容服务器的请求,这样做的好处是内容服务器可以处理更高的负载,并且比其独自工作时更有效率。

在初始启动期间,代理服务器首次从内容服务器检索文档,此后,对内容服务器的请求数会大大下降。


nginx服务器

Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。

其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,有很多人都在用。</p>



(3)常见问题:


代理与反向代理的区别


(4)解决方案:


从用途 上来讲:

正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性减少网络使用率。

反向代理的典型用途是将 防火墙后面的服务器提供给Internet用户访问。

反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。

另外,反向代理还可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。


从安全性 来讲:

正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施以确保仅为经过授权的客户端提供服务。

反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。


(5)编码实战:


nginx反向代理

nginx反向代理的指令不需要新增额外的模块,默认自带proxy_pass指令,只需要修改配置文件就可以实现反向代理。

upstream tomcatserver1 {

server 192.168.3.43:8080;

    }

    upstream tomcatserver2 {

server 192.168.3.43:8082;

    }

   server {

        listen       80;

        server_name  8080.zcinfo.com;

 

        #charset koi8-r;

 

        #access_log  logs/host.access.log  main;

 

        location / {

            proxy_pass   http://tomcatserver1;

            index  index.html index.htm;

        }  

    }

  

 server {

        listen       80;

        server_name  8082.zcinfo.com;

 

        #charset koi8-r;

 

        #access_log  logs/host.access.log  main;

 

        location / {

            proxy_pass   http://tomcatserver2;

            index  index.html index.htm;

        }

    }


(6)拓展思考:

DNS是什么?

DNS(Domain Name System,域名系统),简单的说:就是把我们输入的网站域名翻译成IP地址的系统

比如我们想访问百度,我们会在网页里键入www.baidu.com,但是电脑不会理解这串字符的含义。

于是就把这串字符发送给DNS(域名解析系统),系统将地址解析119.75.217.109(实际上能理解的就是这个数字),

并转向这个IP地址。于是我们就成功的打开了百度的网页。

什么是DNS循环复用?

如果发现主机的多个资源记录,则循环使用包含在查询应答中的主机记录。

在默认情况下,DNS服务器的循环复用,对资源记录进行排序.

不足之处:

循环复用 DNS 使用 DNS将传入的 IP 请求映射到定义的一系列循环形式的服务器。

一旦发生服务器故障,循环复用 DNS 继续把请求发送到这个故障服务器,一直到把该服务器从 DNS 中移走为止。

这样许多用户必须等到 DNS 连接超时以后才能成功地访问目标网站。


(7)参考文献:


【1】https://my.oschina.net/jasonwung/blog/665324

【2】https://www.cnblogs.com/anruy/p/4989161.html

【3】https://blog.csdn.net/u013144287/article/details/78551398

【4】https://www.zhihu.com/question/24723688/answer/48369770

【5】https://www.cnblogs.com/Anker/p/6056540.html

【6】http://baijiahao.baidu.com/s?id=1601715769059347969&wfr=spider&for=pc

【7】https://blog.csdn.net/m13666368773/article/details/8060481



(8)更多讨论:


Q1:代理与反向代理的区别?

A1:从用途 上来讲:

正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性减少网络使用率。

反向代理的典型用途是将 防火墙后面的服务器提供给Internet用户访问。

反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。

另外,反向代理还可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。


从安全性 来讲:

正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施以确保仅为经过授权的客户端提供服务。

反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。




(9)结束语:


今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

技能树.IT修真院“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~

我的邀请码:35138865,或者你可以直接点击此链接:http://www.jnshu.com/login/1/35138865


评论

[西安|荣耀师兄]JAVA-孙若飞 发表于 2019-04-02 19:26:17 #1

格式符合,讲的也挺明白的,记得自己在服务器上试一下使用nginx分发请求到不同的服务器里

回复

请您登录 后进行评论