正向代理和反向代理以及nginx的简介
前言
今天来看一个简单的知识点,正向代理和反向代理。相信这两个名词大家都听过。那么什么是正向代理?什么是反向代理呢?带着这个问题让我们开始今天的学习之旅。
正向代理
首先让我们想一想,在日常生活中,我们有哪些场景下会使用到正向代理呢?一个场景就是当我们要访问的网站不能访问,我们就可以通过代理服务器来访问。这里的代理服务器就是一个正向代理服务器。我们自己的电脑作为客户端,首先会向代理服务器发送一个请求,并且指定目标服务器,之后代理服务器向目标服务器发送请求,并且将获得的内容返回给客户端。正向代理下客户端必须做一些特殊的设置。说白了,正向代理服务器就是帮客户端去请求目标服务器。如下图:正向代理中,proxy和client同属于一个LAN,对server透明。
反向代理
反向代理的过程与正向代理恰恰相反,正向代理的话客户端需要做一些设置,设置代理服务器。而反向代理的话,对客户端而言,代理服务器就好像是目标服务器,客户端向反向代理服务器发送请求,接着反向代理服务器判断请求走向何处,并将请求转交给客户端,反向代理服务器作用在服务端,它在服务器端接收客户端的请求,然后再将请求分发给具体的服务器进行处理。然后再将服务器的相应结果反馈给客户端。一个很典型的应用就是我们通过Nginx作为代理服务器。如下图所示:反向代理中,proxy和server同属于一个LAN,对client透明,实际上proxy在两种代理中做的事都是代为收发请求和响应,不过从结构上来看正好左右互换了下,所以把前者那种代理方式叫做正向代理,后者叫做反向代理。
正向代理和反向代理的区别
正向代理
- 正向代理需要客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的ip地址,还有程序的端口。
- 正向代理需要你主动设置代理服务器IP或者域名进行访问,由设置的服务器IP或者域名去获取访问内容并返回。
- 正向代理是代理客户端,为客户端收发请求,使真实客户端对服务器不可见。
反向代理
- 反向代理不需要客户端做任何设置,直接访问服务器真实IP或者域名,但是服务器内部会自动根据访问内容进行跳转及内容返回,你不知道它最终访问的是哪些机器。
- 反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。
- 反向代理是代理服务器端,为服务器收发请求,使真实服务器对客户端不可见。
Nginx的简介
Nginx最初是作为一个Web服务器创建的,用于解决C10K(就是单击在一秒之内连接客户端的数据为10k,即1万)问题。作为一个Web服务器,它可以以惊人的速度为您的数据服务。但Nginx不仅仅是一个web服务器,你还可以作为一个反向代理进行网站的负载均衡。它的设计不像传统的服务器那样使用线程处理请求,而是一个更加高级的机制-事件驱动机制,就是基于IO多路复用技术实现的。
Nginx的负载均衡示意图
我们通过Nginx做反向代理服务器,实现了Tomcat服务器的负载均衡。
总结
本文简单介绍了,正向代理和反向代理,以及他们的区别。我们只需要记住一点,正向代理作用在客户端,需要客户端做设置,由正向代理服务器代理客户端的请求。而反向代理的话是作用在服务端的,不需要客户端做设置,客户端请求发向代理器,由反向代理服务器来分发请求。
文章来源: feige.blog.csdn.net,作者:码农飞哥,版权归原作者所有,如需转载,请联系作者。
原文链接:feige.blog.csdn.net/article/details/107942039
- 点赞
- 收藏
- 关注作者
评论(0)