说到代理ip大家可能会想到一大推代理ip网站,很多人可能用到代理ip可能是刷东西,或者是用来做cc攻击等等,但是你有没有想过这种代理是正向还是反向,代理是如何实现的,透明代理,普通代理与高匿代理之间有何区别,对于服务端是通过请求信息中何种信息来判别代理区别的。

关于正向代理与反向代理网上相关的文章也比较多,在这里我还是想用自己的语言来简单总结一下这两种代理。

相关阅读:nginx实现反向代理及其跨域应用

 正向代理

正向代理就是我们传统意义上说的代理ip,一般的使用方法就是在浏览器中配置一下代理的ip与端口,然后就可以使用了,而我们一般是用来fanqiang或者是用来隐藏自己的真实ip。

正向代理工作原理

他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器呢,他能访问那个我不能访问的网站,于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。从网站的角度,有时候并不知道真实用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。

nginx正向代理

nginx正向代理服务器搭建与配置

nignx的正向代理配置比较简单,也就是在nginx.conf中加几行参数。

这里放上我自己的配置,其中描红部分为代理核心功能

server
 {
#指定代理端口
 listen 800 ;
 #listen [::]:80 default_server ipv6only=on;
 server_name www.vuln.cn;
 index index.html index.htm index.php;
 root /home/wwwroot/default/;

 #error_page 404 /404.html;
 include enable-php.conf;
#配置dns与代理
 location / { 
 resolver 114.114.114.114;
 proxy_pass $scheme://$http_host$request_uri; 
 } 
 location /nginx_status
 {
 stub_status on;
 access_log off;
 }
#解决css与图片加载不出的问题
 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$
 {
 resolver 114.114.114.114; 
 proxy_pass $scheme://$http_host$request_uri; 
 proxy_buffers 256 4k; 

 if (-f $request_filename) {

 expires 1d;

 break;

 }
 }
 location ~ .*\.(js|css)?$
 {
 expires 12h;
 }

 location ~ /\.
 {
 deny all;
 }
 }

其端口自己配置,如果配置没有问题,重启下nginx就可以直接使用。

nginx正向代理

配置代理ip后可以看到请求头信息中有proxy-connection,这说明这只是个普通代理。

nginx正向代理

 

不能代理https

nginx作者已经明确表示无法支持https代理,如果大家需要代理https推荐使用squid来实现