使用haproxy+squid构建正向代理服务

您所在的位置:网站首页 055型导弹驱逐舰服役了吗 使用haproxy+squid构建正向代理服务

使用haproxy+squid构建正向代理服务

#使用haproxy+squid构建正向代理服务| 来源: 网络整理| 查看: 265

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

##使用haproxy+squid构建正向代理服务

#####正向代理的业务场景

假设在局域网内存在6台主机,其中只有一台主机可以上外网,那么其余5台主机就需要通过那一台可以上外网的主机上网,即所谓代理(正向代理)。代理服务器启动后,不能上网的主机只需在IE中配置代理服务器即可。IE中的代理服务器设置为 “Internet选项->连接->局域网设置->代理服务器” 中设置代理服务器的IP和代理服务器的端口。

#####问题来了,如何构建一个代理服务呢?

如上述假设,在那一台可以出外网的主机上安装代理软件squid,并进行适当配置即可。应该说明的是,代理软件很多,如果那一台能出外网的主机是Windows系统的话,可以选择ccproxy。这里主要是指在Linux环境下的代理,其他代理软件还有nginx,不过貌似大家都用它做反向代理,做正向代理这里还是用squid吧。

#####squid的安装,配置,运行

安装 sudo apt-get install squid 配置, 打开/etc/squid3/squid.conf文件,注意修改如下的配置项 http_port 3128 #代理服务器的端口 ##http_access deny !Safe_ports #注释掉此项 ##http_access deny manager #注释掉此项 ##http_access deny to_localhost#注释掉此项 ##http_access deny all #注释掉此项 #添加下面两项,设置哪些网段可以访问本代理服务器 acl our_networks src 192.168.29.0/24 192.168.17.0/24 http_access allow our_networks 重启服务,使代理服务生效 sudo service squid3 restart

#####用haproxy的目的

haproxy是负载均衡器,它可以将网络请求按一定算法均匀分布到各个代理服务器(这里指正向代理)上,防止压力都集中在某一个节点上,提高整体的服务的负载能力。

#####此处使用haproxy的场景

假设有103台主机需要出外网,其中只有2台能直接访问外网,那么我们接着假设这两台主机的IP分别是192.168.29.210, 192.168.29.211,且已经在上面安装好squid代理服务。 还有一台主机我们将其选做负载均衡所在的机器,假设其IP为192.168.29.212。

按上述做法,在其余100台主机上可以设置代理(IE “Internet选项->连接->局域网设置->代理服务器” )为192.168.29.212,haproxy负载均衡器会将网络请求按一定算法均匀打到192.168.29.210, 192.168.29.211两台代理服务器上。

#####haproxy的安装,配置,运行

安装 sudo apt-get install haproxy 配置,配置文件位于/etc/haproxy/haproxy.cfg global daemon maxconn 1024 defaults mode http timeout connect 5000ms timeout client 50000ms timeout server 50000ms frontend secure bind *:8888 stats enable stats uri /admin?admin stats auth admin:admin stats admin if TRUE stats refresh 10s frontend httpproxy bind 0.0.0.0:4567 default_backend servers backend servers balance leastconn server squid1 192.168.29.210:3128 maxconn 512 weight 1 server squid2 192.168.29.211:3128 maxconn 512 weight 1

配置解释

内部的“frontend secure”区块表示的是haproxy的web控制台,可以使用http://192.168.29.212/admin?admin来访问,用户名密码这里设置的都是admin,并设置10秒刷新一次。内部的“frontend httpproxy”区块绑定了4567端口,那么那些(100台主机)就可以在IE中设置代理服务器为192.168.29.212,端口4567。内部的“backend servers”区块使用了“leastconn”算法,指的是最少连接者优先(哪一台代理服务器上请求最少,就把请求往这一台代理服务器上打)。“server squid1 192.168.29.210:3128 maxconn 512 weight 1”和“server squid2 192.168.29.211:3128 maxconn 512 weight 1”指的是两台squid的代理服务器。

运行

sudo haproxy -f /etc/haproxy/haproxy.cfg 停止运行 sudo killall -9 haproxy


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3