一些浏览器在设置代理的时候,有多个选项,包括HTTP代理,HTTPS代理,FTP代理,SOCKS代理等。它们之间有什么区别呢?为了寻找它们之间的区别,我专门做了个实验,用nginx搭建了HTTP和HTTPS代理服务器,并在chrome上设置不同的代理浏览网站。
首先搭建HTTP代理,nginx下使用:
server { listen 8080; resolver 8.8.8.8; location / { proxy_pass http://$http_host$request_uri; } }
然后设置代理,访问HTTP网站,发现IP是代理服务器的IP,使用HTTP代理访问HTTPS网站,发现IP还是本机的IP。也就是说:HTTP代理,只代理HTTP网站,对于HTTPS的网站则不与代理。
由于nginx不支持CONNECT方法,所以不能用来搭建HTTPS代理服务器,用apache来替代,搭建HTTPS代理需要的有mod_proxy.so,mod_proxy_connect.so,需要在apache的配置文件中启用相应的模块。然后把ProxyRequests on的注释去掉,重启一下httpd服务器,HTTPS代理服务器即配置成功。用HTTPS代理分别访问HTTP网站和HTTPS网站,发现HTTPS网站用的代理服务器IP,HTTP网站还是本地IP。也就是说:HTTPS代理,只代理HTTPS网站,HTTP网站则走正常的线路。
当然在浏览器代理设置中,还有设置“对所有协议均使用相同的代理服务器”,当设置这个的时候,浏览器支持的所有协议,http,https,ftp等都将通过这个代理,前提是服务器支持。
评论列表: