说到代理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来实现




云悉指纹