代理分为正向代理和反向代理。
正向代理
正向代理类似一个跳板机,代理访问外部资源。比如你想访问谷歌,咋办呢?我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。
正向代理的用途:
(1)访问原来无法访问的资源,如google
(2) 可以做缓存,加速访问资源
(3)对客户端访问授权,上网进行认证
(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
实例:买个梅乖服务器,centos最好,安装pip
yum install python-setuptools && easy_install pip
安装代理服务软件
pip install shadowsocks
配置用户
vim /etc/shadowsocks.json
{
"server":"0.0.0.0",
"port_password":{
"8381":"xxxxxxx",
"8382":"xxxxxxx",
},
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false
}
启动与停止
ssserver -c shadowsocks.json -d start
ssserver -c shadowsocks.json -d stop
然后去下载个客户端就能访问了
https://github.com/shadowsocks
反向代理
反向代理(Reverse Proxy)实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
反向代理的作用:
(1)保证内网的安全,可以使用反向代理提供WAF功能,阻止web攻击
大型网站,通常将反向代理作为公网访问地址,Web服务器是内网。
(2)负载均衡,通过反向代理服务器来优化网站的负载
实例:使用nginx做反向代理服务器
nginx支持配置反向代理,通过反向代理实现网站的负载均衡。nginx通过proxy_pass_http 配置代理站点,upstream实现负载均衡。
upstream apachephp {
server 0.0.0.0:8080;
}
server {
listen 80;
server_name duicode.com;
access_log logs/duicode.access.log main;
error_log logs/duicode.error.log;
root html;
index index.html index.htm index.php;
## 转发请求 ##
location / {
proxy_pass http://apachephp;
#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;
}
}