一、前言html
最近工做中用到反向代理,发现网络代理的玩法还真很多,网络背后有不少须要去学习。而在此以前仅仅使用了过代理软件,曾经为了访问google,使用了代理软件,须要在浏览器中配置代理的地址。我只知道有代理这个概念,并不清楚代理还有正向和反向之分,因而赶忙学习一下,补充一下知识。首先弄清楚什么是正向代理,什么是反向代理,而后是两者在实际使用中展现的方式是什么样的,最后总结一下正向代理用来作什么,反向代理能够作什么。nginx
二、正向代理web
正向代理相似一个跳板机,代理访问外部资源。浏览器
举个例子:缓存
我是一个用户,我访问不了某网站,可是我能访问一个代理服务器,这个代理服务器呢,他能访问那个我不能访问的网站,因而我先连上代理服务器,告诉他我须要那个没法访问网站的内容,代理服务器去取回来,而后返回给我。从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。安全
客户端必须设置正向代理服务器,固然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。服务器
例如以前使用过这类软件例如CCproxy,http://www.ccproxy.com/ 须要在浏览器中配置代理的地址。网络
总结来讲:正向代理 是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),而后代理向原始服务器转交请求并将得到的内容返回给客户端。客户端必需要进行一些特别的设置才能使用正向代理。负载均衡
正向代理的用途:学习
(1)访问原来没法访问的资源,如google
(2) 能够作缓存,加速访问资源
(3)对客户端访问受权,上网进行认证
(4)代理能够记录用户访问记录(上网行为管理),对外隐藏用户信息
例如CCProxy用途:
三、反向代理
初次接触方向代理的感受是,客户端是无感知代理的存在的,反向代理对外都是透明的,访问者者并不知道本身访问的是一个代理。由于客户端不须要任何配置就能够访问。
反向代理(Reverse Proxy)实际运行方式是指以代理服务器来接受internet上的链接请求,而后将请求转发给内部网络上的服务器,并将从服务器上获得的结果返回给internet上请求链接的客户端,此时代理服务器对外就表现为一个服务器。
反向代理的做用:
(1)保证内网的安全,可使用反向代理提供WAF功能,阻止web攻击
大型网站,一般将反向代理做为公网访问地址,Web服务器是内网
(2)负载均衡,经过反向代理服务器来优化网站的负载
四、两者区别
借用知乎两张图来表达:https://www.zhihu.com/question/24723688
五、nginx的反向代理
nginx支持配置反向代理,经过反向代理实现网站的负载均衡。这部分先写一个nginx的配置,后续须要深刻研究nginx的代理模块和负载均衡模块。
nginx经过proxy_pass_http 配置代理站点,upstream实现负载均衡。
参考资料:
http://z00w00.blog.51cto.com/515114/1031287
http://blog.csdn.net/m13666368773/article/details/8060481
六、nginx的反向代理
nginx一样能够实现代理上网的功能,配置以下:
user www;
worker_processes 1;
error_log /var/log/nginx/error.log debug;
events {
use epoll;
worker_connections 1024;
}
http {
resolver 8.8.8.8;
server {
listen 8088;
location / {
proxy_pass http://$http_host$request_uri;
}
}
}
nginx实现代理上网,有三个关键点必须注意,其他的配置跟普通的nginx同样
1.增长dns解析resolver
2.增长无server_name名的server
3.proxy_pass指令
具体实现步骤:
1.把以下配置填到你的配置文件http做用域,
2.重启nginx使配置文件生效
3.设置ie代理
4.可使用代理上网了。
能够访问http://ip.quancha.cn检测代理是否生效
使用nginx代理上网后
转自:http://www.cnblogs.com/Anker/p/6056540.html