正向代理和反向代理

来源:互联网 发布:java完全自学手册 pdf 编辑:程序博客网 时间:2024/06/05 04:48

一、概念:

1、正向代理:

首先举例说明:如果我有两台机器,一台是内网IP不能访问某网站(如www.qq.com),另外一台是可以访问这个网站,那么我就可以将能访问腾讯的机器作为代理服务器,让不能上网的机器通过这个代理服务器去连接腾讯网站。

原理:正向代理是针对用户和后端真实服务器的,用户要真正访问的是后端服务器,但后端的服务器是不知道用户要访问它的,而代理服务器就作用于用户和后端服务器之间。当用户访问代理服务器的时候,代理服务器收到用户的请求,就会往后台服务器发送数据请求,后端的真正服务器收到后进行处理,并返回给代理服务器,代理服务器再把请求结果传给用户。

2、反向代理:

还是举例说明:如我有两台服务器,一台是内网服务器装有自己公司的网站,另外一台服务器是外网,其他用户是可以和外网服务器联通的。那么就可以将外网服务器作为内网服务器的反向代理。当用户去访问外网服务器时,实际访问的是内网服务器发送的资源。

工作原理:反向代理是针对代理服务器和后端真实服务器的。用户其实是不知道后端还有真实服务器存在,只知道自己访问的网站是就是自己想要的服务器网站(代理服务器)。当用户访问代理服务器时,反向代理服务器就会向后端真实服务器发送请求,真实服务器收到请求后会返回给反向代理服务器,反代器在返回给用户。这个过程防火墙是不允许后端的服务器向外端发送资源,只能通过反向代理服务器。


二、软件

说到了代理,就不得不说明一下代理软件。

常使用的就是nginx和squid。

nginx:

1、nginx不存在正向代理一说,即可以做反向代理,让外面的用户通过一个外网服务器去访问某个不能访问的网站,或者也可以理解为:外面的用户访问外网服务器,外网服务器不能提供请求结果,便将请求分给自己的内网服务器去处理。

需在vhosts虚拟主机下配置proxy.conf代理。

server { listen 80;   server_name www.qq.com;   location /   { proxy_pass http://123.151.148.111;   }}

2、nginx功能很多,还可以做负载均衡。即和lvs、keepalived具有同等作用。

3、nginx可以设置用户认证、301跳转、日志切割、指定不记录某些静态文件、访问控制、user_agent等

4、nginx处理静态文件能力很强,很多时候使用tomcat+nginx结合,因为tomcat处理静态资源很慢。也可以使用Apache+nginx,但这俩的网站都是针对php的,tomcat是针对java而研发的。

http://biancheng.dnbcw.info/linux/387684.html


2、squid

另一款代理软件就是squid了,squid既可以做正向又可以做反向代理。

还拥有缓存功能进行CDN加速,减小带宽的使用,减小cpu的使用压力。

具体请参考:http://blog.csdn.net/wzqzhq/article/details/53426442


正向反向代理其他理解:http://blog.csdn.net/m13666368773/article/details/8060481


0 0
原创粉丝点击