正向代理与反向代理

一、反向代理

说到反向代理,我们肯定能联想到正向代理,那咋们就先谈谈两者的区别。。首先得弄清楚什么是代理?正向代理是什么?反向代理又是什么?二者可以用来干什么?

 

  1. 正向代理

正向代理简单来说就是一个跳板机,代理客户端访问外部资源

比如说,我客户端无法访问某网站,而我能访问某个代理服务器,这个代理服务器能访问那个网站,于是我连上代理服务器,让它代替我去取那个网站的内容,然后再返还给我。在网站的角度只知道代理服务器来访问过,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。

所以正向代理客户端必须配置正向代理服务器的IP地址和代理程序的端口

正向代理的用途:

(1)访问原来无法访问的资源,如google

(2)可以做缓存,加速访问资源

(3)对客户端访问授权,上网进行认证

(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

 

  1. 反向代理

反向代理不需要任何配置客户端就可以访问,客户端并不知道自己访问的是代理服务器。。

反向代理服务器接到客户端发过来的连接请求,接受并转发给内网中的web服务器,,,并将从服务器上得到的结果返回给internet上请求连接的客户端。

反向代理的用处:

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

大型网站通常将反向代理服务器作为公网访问地址,web服务器在内网

(2)负载均衡,反向代理减少网站的负载

  1. 正向代理与反向代理区别

好,现在我们来看看二者的区别

正向代理中,proxy和cient同属一个LAN,对server透明;

反向代理中,proxy和server同属一个LAN,对client透明;

实际上proxy在两种代理中都是代理收发请求和响应,不过是结构上看左右互换了一下,所以把第二种代理叫做反向代理!!!

 

二、nginx反向代理

nginx支持配置反向代理,通过反向代理实现网站的负载均衡。

nginx通过proxy_pass_http 配置代理站点,upstream实现负载均衡。通过修改nginx配置文件就能实现反向代理,这里把配置文件贴出来仅供参考。。。

nginx配置文件不需要全部写在nginx.conf里,server段多了就没有条理性。

可以修改nginx.conf文件,添加include ***.conf http{}段,新建一个***.conf加入如下内容,修改ip与域名,重启nginx即可!

 

upstream apachephp {

server ip:8080; #Apache

}

 

## Start www.quancha.cn ##

server {

listen 80;

server_name www.quancha.cn;

 

access_log logs/quancha.access.log main;

error_log logs/quancha.error.log;

root html;

index index.html index.htm index.php;

 

## send request back to apache ##

location / {

proxy_pass http://apachephp;

 

#Proxy Settings

proxy_redirect off;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;

proxy_max_temp_file_size 0;

proxy_connect_timeout 90;

proxy_send_timeout 90;

proxy_read_timeout 90;

proxy_buffer_size 4k;

proxy_buffers 4 32k;

proxy_busy_buffers_size 64k;

proxy_temp_file_write_size 64k;

}

}

posted @ 2018-12-10 11:29  海军同学  阅读(160)  评论(0编辑  收藏  举报