基于Squid和TinyProxy搭建代理集群

Setp0 要实现什么

架设一台master代理主机,由这台机器统筹管理多台子代理机器,这样客户端只需要统一维护一个master机器即可。

基于Squid和TinyProxy搭建代理集群_第1张图片
001.png

Step1 Squid的基本安装和配置

Squid是一款出色的缓存代理服务器,也用作正向和反向代理,同时支持横向分布式扩展,所以在这里选择squid作为master搭建代理集群

Squid is a caching proxy for the Web supporting HTTP, HTTPS, FTP, and more. It reduces bandwidth and improves response times by caching and reusing frequently-requested web pages. Squid has extensive access controls and makes a great server accelerator. It runs on most available operating systems, including Windows and is licensed under the GNU GPL.

在ubuntu下,squid的安装十分简单,只需要执行下面这个命令即可:

sudo apt-get install squid3

Squid的配置在/etc/squid/squid.conf下面,只需要改变下面几个配置即可。

#允许的客户端ip
acl allcomputers src 0.0.0.0/0.0.0.0
#将http_access deny all注释或者删除
#http_access deny all
http_port 12345

如果要为你的代理服务器设置访问权限(用户名和密码验证),那么添加以下配置:

#配置用户名密码,后面会生成passwords文件
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated allcomputers

生成密钥文件:

sudo apt-get install apache2-utils
sudo htpasswd -c -d /etc/squid/passwords your_user_name
sudo chmod o+r /etc/squid3/passwords

启动服务:

service squid start

Step3 配置集群机器代理

到此为止,master机器已经配置好了,接下来在所有的从属机器执行下面命令:

sudo apt-get update
sudo apt-get install tinyproxy
sed -i "s/Port 8888/Port 30303/g" /etc/tinyproxy.conf
sed -i "s/Allow 127.0.0.1/Allow ${your_master_ip}/g" /etc/tinyproxy.conf
service tinyproxy start

Step4 将子代理加入master

最后,在master机器配置集群,在squid的配置文件中添加以下配置,注意name不能重复:

cache_peer ${your_cluster_ip} parent 30303 0 no-query weighted-round-robin weight=2 connect-fail-limit=2 allow-miss max-conn=5 name=${your_name}

重启squid服务:

service squid restart

使用

我们统一使用唯一的IP作为代理即可,比如:

curl -X http://username:password@your_master_ip:port  GET targetUrl

总结

通过结合squid和tinyproxy,轻松的搭建一个代理池集群服务,客户端只需要维护一个master地址即可,而不必每次都获取一套新的代理地址。

你可能感兴趣的:(基于Squid和TinyProxy搭建代理集群)