一、正向代理
解释:正向代理指的是客户端通过访问目标服务端,再由目标服务端来转发流量访问互联网
结构图如下:
好处:这样做的好处是,当客户端通过服务端访问互联网某个网站时,该网站获得的IP地址是服务端的IP,这样可以达到隐藏客户端真实IP的效果
二、服务端配置
注意:nginx默认只能代理HTTP服务,并不能代理HTTPS(因为nginx代理不支持CONNECT(其是使用https的前提))
解释:配置只需配置代理服务器即可,无需配置被代理服务器
参数:
proxy_pass
:其为被代理服务器地址(示例:proxy_pass http://127.0.0.1$request_url;
)proxy_set_header
:更改Nginx服务器接收到的客户端请求的请求头信息,然后将新的请求头发送给代理的服务器(示例:proxy_set_header name jack;
)proxy_buffering
:是否开启代理服务器的缓冲区(建议:proxy_buffering on;
)proxy_buffer_size
:该指令用来设置从被代理服务器获取的第一部分响应数据的大小(建议:proxy_buffer_size 4 32k;
)proxy_busy_buffers_size
:该指令用来限制同时处于BUSY状态的缓冲总大小(建议:proxy_busy_buffers_size 64k;
)proxy_temp_file_write_size
:用来设置磁盘上缓冲文件的大小(建议:proxy_temp_file_write_size 64k;
)
配置(此时只支持http):
server {
listen 12345;
resolver 114.114.114.114; # dns解析服务器
location /{
proxy_pass $scheme://$host$request_uri; #proxy_pass 用来要代理的网站,
#$scheme是客户端请求的协议(如http);
#$host是客户端请求的域名(如baidu.com);
#$request_uri是客户端访问的url地址(如/baidu?s=12345)。
#他们拼接成就是http://baidu.com/baidu?s=12345
}
}
配置(支持https)(需自行安装第三方模块:流程):
server {
listen 12345;
resolver 114.114.114.114;
proxy_connect;# 表示启用nginx代理CONNECT(也就能使用https)
proxy_connect_allow 443;# CONNECT可代理的端口(80默认nginx就可以代理,这里配置其它端口)
proxy_connect_connect_timeout 10s;# 设置与被代理服务器建立超时的时间
access_log /var/log/nginx/proxy/access.log;
error_log /var/log/nginx/proxy/error.log;
location /{
proxy_pass $scheme://$host$request_uri;
}
}
三、客户端配置
解释:window10在如下位置配置即可,需要填上nginx的ip地址与其打开的端口号