说到代理ip大家可能会想到一大推代理ip网站,很多人可能用到代理ip可能是刷东西,或者是用来做cc攻击等等,但是你有没有想过这种代理是正向还是反向,代理是如何实现的,透明代理,普通代理与高匿代理之间有何区别,对于服务端是通过请求信息中何种信息来判别代理区别的。
关于正向代理与反向代理网上相关的文章也比较多,在这里我还是想用自己的语言来简单总结一下这两种代理。
相关阅读:nginx实现反向代理及其跨域应用
正向代理
正向代理就是我们传统意义上说的代理ip,一般的使用方法就是在浏览器中配置一下代理的ip与端口,然后就可以使用了,而我们一般是用来fanqiang或者是用来隐藏自己的真实ip。
正向代理工作原理
他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器呢,他能访问那个我不能访问的网站,于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。从网站的角度,有时候并不知道真实用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。
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就可以直接使用。
配置代理ip后可以看到请求头信息中有proxy-connection,这说明这只是个普通代理。
不能代理https
nginx作者已经明确表示无法支持https代理,如果大家需要代理https推荐使用squid来实现