使用haproxy+squid构建正向代理服务 |
您所在的位置:网站首页 › 055型导弹驱逐舰服役了吗 › 使用haproxy+squid构建正向代理服务 |
2019独角兽企业重金招聘Python工程师标准>>> ##使用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 |