正向代理与反向代理
Posted haijunzhang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正向代理与反向代理相关的知识,希望对你有一定的参考价值。
一、反向代理
说到反向代理,我们肯定能联想到正向代理,那咋们就先谈谈两者的区别。。首先得弄清楚什么是代理?正向代理是什么?反向代理又是什么?二者可以用来干什么?
- 正向代理
正向代理简单来说就是一个跳板机,代理客户端访问外部资源
比如说,我客户端无法访问某网站,而我能访问某个代理服务器,这个代理服务器能访问那个网站,于是我连上代理服务器,让它代替我去取那个网站的内容,然后再返还给我。在网站的角度只知道代理服务器来访问过,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。
所以正向代理客户端必须配置正向代理服务器的IP地址和代理程序的端口
正向代理的用途:
(1)访问原来无法访问的资源,如google
(2)可以做缓存,加速访问资源
(3)对客户端访问授权,上网进行认证
(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
- 反向代理
反向代理不需要任何配置客户端就可以访问,客户端并不知道自己访问的是代理服务器。。
反向代理服务器接到客户端发过来的连接请求,接受并转发给内网中的web服务器,,,并将从服务器上得到的结果返回给internet上请求连接的客户端。
反向代理的用处:
(1)保证内网的安全,可以使用反向代理提供WAF功能,阻止web攻击
大型网站通常将反向代理服务器作为公网访问地址,web服务器在内网
(2)负载均衡,反向代理减少网站的负载
- 正向代理与反向代理区别
好,现在我们来看看二者的区别
正向代理中,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;
}
}
以上是关于正向代理与反向代理的主要内容,如果未能解决你的问题,请参考以下文章