代理小研究

/ 0评 / 0

代理分为正向代理和反向代理。

正向代理

正向代理类似一个跳板机,代理访问外部资源。比如你想访问谷歌,咋办呢?我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。

正向代理的用途:
(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;
   }
}

二者的区别

评论已关闭。