开源免费代理软件Haproxy部署配置实现Web业务访问负载均衡
今天小编给各位分享十大免费代理ip软件的知识,文中也会对其通过开源免费代理软件Haproxy部署配置实现Web业务访问负载均衡和如何在Linux上使用HAProxy配置HTTP负载均衡系统等多篇文章进行知识讲解,如果文章内容对您有帮助,别忘了关注本站,现在进入正文!
内容导航:
一、开源免费代理软件Haproxy部署配置实现Web业务访问负载均衡
HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。 HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在时下的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全地整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。HAProxy 官方网站:https:///pgc-image/ee516248f1eb46d585081a02a20c7d6f~noop.image?_iz=58558&from=article.pc_detail&x-expires=1667015339&x-signature=zENBsql0o9IoHwjShSjtbpHZuJk%3D" img_width="363" img_height="290" image_type="1" mime_type="image/png" web_uri="pgc-image/ee516248f1eb46d585081a02a20c7d6f">
负载平衡的类型介绍(1)无负载平衡:用户直接连接到Web服务器,在yourdomain.com网站上,并且没有负载平衡。如果您的单个Web服务器出现故障,用户将无法再访问网站。此外,如果大量用户同时访问网站,Web服务器可能会遇到性能瓶颈,导致网站访问缓慢甚至无法连接情况。
(2)四层负载平衡:这种方式进行负载均衡将根据IP和端口转发用户流量,比如用户请求访问http://yourdomain.com/anything,则流量将转发到处理yourdomain.com的所有请求的后端80端口。用户访问负载均衡器,那么负载均衡器将用户的请求转发给后端服务器的Web后端组。无论选择哪个后端服务器,都将直接响应用户的请求。通常,Web后端中的所有服务器应该提供相同的内容 ,否则用户可能会收到不一致的内容。
(3)七层负载平衡:使用第7层允许负载均衡器根据用户请求的内容将请求转发到不同的后端服务器。这种负载平衡模式允许您在同一域和端口下运行多个Web应用程序服务器。比如如果用户请求yourdomain.com/blog,则会将其转发到blog-backend组后端,后端是一组运行博客应用程序的服务器。其他请求则被转发到web-backend组后端,后端可能正在运行另一个应用程序。
Haproxy具体配置操作实验环境三台Linux主机
Haproxy:192.168.52.20
Web server1:192.168.52.121
Web server2:192.168.52.122
在Web server 1和2上面,配置web服务。
yum install httpd -y #安装http服务
echo “This is 192.168.52.12x!!!” > /var/www/html/index.html #配置两台web文件用于测试显示效果
systemctl start httpd #启动http服务
通过浏览器输入IP访问效果如下。
1.安装HAProxy。
yum -y install haproxy
2.编辑HAProxy配置文件,主要配置如下:
vim /etc/haproxy/haproxy.cfg
global #全局参数的设置 log 127.0.0.1 local2 #全局的日志配置,使用log关键字,指定使用127.0.0.1上的syslog服务中的local0日志设备,记录日志等级为info的日志 chroot /var/lib/haproxy #改变当前工作目录 pidfile /var/run/haproxy.pid #当前进程id文件 maxconn 4000 #最大连接数 user haproxy #所属用户 group haproxy #所属组 daemon #以守护进程方式运行haproxy stats socket /var/lib/haproxy/statsdefaults #配置默认参数 mode http #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK log global #应用全局的日志配置 option httplog #启用日志记录HTTP请求,默认haproxy日志记录是不记录HTTP请求日志 option dontlognull #启用该项,日志中将不会记录空连接。所谓空连接就是在上游的负载均衡器或者监控系统为了探测该 服务是否存活可用时, 需要定期的连接或者获取某一固定的组件或页面,或者探测扫描端口是否在监 听或开放等动作被称为空连接;官方文档中标注,如果该服务上游 没有其他的负载均衡器的话,建议不要使用该参数,因为互联网上的恶意扫描或其他动作就不会被记录下来 option http-server-close #每次请求完毕后主动关闭http通道 option forwardfor except 127.0.0.0/8 #如果服务器上的应用程序想记录发起请求的客户端的IP地址, 需要在HAProxy 上配置此选项, 这样 HAProxy会把客户端的IP信息发送给服务器,在HTTP请求中添加"X-Forwarded-For"字 段。 启用 X-Forwarded-For,在requests 头部插入客户端IP发送给后端的server,使后端server获 取到客户端的真实IP。 option redispatch # 当使用了cookie时,haproxy将会将其请求的后端服务器的serverID插入到cookie中,以保证 会话的SESSION持久性;而此时,如果后端的服务器宕掉 了, 但是客户端的cookie是不会刷新 的,如果设置此参数,将会将客户的请求强制定向到另外一个后端server上,以保证服务的正常。 retries 3 # 定义连接后端服务器的失败重连次数,连接失败次数超过此值后将会将对应后端服务器标记为不可用 timeout http-request 10s #http请求超时时间 timeout queue 1m #一个请求在队列里的超时时间 timeout connect 10s #连接超时 timeout client 1m #客户端超时 timeout server 1m #服务器端超时 timeout http-keep-alive 10s #设置http-keep-alive的超时时间 timeout check 10s #检测超时 maxconn 3000 #每个进程可用的最大连接数frontend main *:80 #监听地址为80 acl url_static path_beg -i /static /images /javascript /stylesheets acl url_static path_end -i .jpg .gif .png .css .js use_backend static if url_static default_backend my_webserver #定义一个名为my_app前端部分。此处将对于的请求转发给后端backend static #使用了静态动态分离(如果url_path匹配 .jpg .gif .png .css .js静态文件则访问此后端) balance roundrobin #负载均衡算法( #banlance roundrobin 轮询,balance source 保存session值,支持static-rr,leastconn,first,uri等参数) server static 127.0.0.1:80 check #静态文件部署在本机(也可以部署在其他机器或者squid缓存服务器)backend my_webserver #定义一个名为 my_webserver后端部分。PS:此处 my_webserver只是一个自定义名字而已, 但是需要与frontend里面 配置项default_backend 值相一致 balance roundrobin #负载均衡算法 server web1 192.168.52.121:80 check inter 2000 fall 3 server web2 192.168.52.122:80 check inter 2000 fall 3 #定义的多个后端,检测健康端口80,检测心跳频率是2000ms,失败3次则认为服务器不可用
3.启动Haproxy。
systemctl start haproxy
Haproxy启动成功后,最后在其他客户端机子上面,访问http://192.168.52.20/,则可以看到结果了,外部客户端的请求被均衡的分配到两台Web Server上,出现不同的界面。同时,当后端一台Web服务器出现故障时也可以顺利访问网页,保证了高可用性!
一、如何在Linux上使用HAProxy配置HTTP负载均衡系统
一、安装HAProxy1、创建HAProxy运行账户和组
groupadd haproxy #添加haproxy组
useradd -g haproxy haproxy -s /bin/false #创建nginx运行账户haproxy并加入到haproxy组,不允许haproxy用户直接登录系统
2、安装编译工具
yum install gcc gcc-c++ make openssl-devel kernel-devel
3、安装HAProxy
HAProxy下载地址:
上传haproxy-1.5.2.tar.gz到/usr/local/src目录中
cd /usr/local/src #进入软件包存放目录
tar zxvf haproxy-1.5.2.tar.gz #解压
cd haproxy-1.5.2 #进入安装目录
make TARGET=linux26 CPU=x86_64 PREFIX=/usr/local/haprpxy #编译
make install PREFIX=/usr/local/haproxy #安装
参数说明:
TARGET=linux26 #使用uname -r查看内核,如:2.6.18-371.el5,此时该参数就为linux26
CPU=x86_64 #使用uname -r查看系统信息,如x86_64 x86_64 x86_64 GNU/Linux,此时该参数就为x86_64
PREFIX=/usr/local/haprpxy #/usr/local/haprpxy为haprpxy安装路径
4、设置HAProxy
mkdir -p /usr/local/haproxy/conf #创建配置文件目录
mkdir -p /etc/haproxy #创建配置文件目录
cp /usr/local/src/haproxy-1.5.2/examples/haproxy.cfg /usr/local/haproxy/conf/haproxy.cfg #拷贝配置模板文件
ln -s /usr/local/haproxy/conf/haproxy.cfg /etc/haproxy/haproxy.cfg #添加配置文件软连接
cp -r /usr/local/src/haproxy-1.5.2/examples/errorfiles /usr/local/haproxy/errorfiles #拷贝错误页面
ln -s /usr/local/haproxy/errorfiles /etc/haproxy/errorfiles #添加软连接
mkdir -p /usr/local/haproxy/log #创建日志文件目录
touch /usr/local/haproxy/log/haproxy.log #创建日志文件
ln -s /usr/local/haproxy/log/haproxy.log /var/log/haproxy.log #添加软连接
cp /usr/local/src/haproxy-1.5.2/examples/haproxy.init /etc/rc.d/init.d/haproxy #拷贝开机启动文件
chmod +x /etc/rc.d/init.d/haproxy #添加脚本执行权限
chkconfig haproxy on #设置开机启动
update-rc.d haproxy defaults 99 # ubuntu 设置开机启动
ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin #添加软连接
5、配置haproxy.cfg参数
cp /usr/local/haproxy/conf/haproxy.cfg /usr/local/haproxy/conf/haproxy.cfg-bak #备份
vi /usr/local/haproxy/conf/haproxy.cfg #编辑,修改
global
log 127.0.0.1 local0 notice
maxconn 2000
user haproxy
group haproxy
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
timeout connect 5000
timeout client 10000
timeout server 10000
listen appname 0.0.0.0:80
mode http
stats enable
stats uri /haproxy?stats
stats realm Strictly\ Private
stats auth A_Username:YourPassword
stats auth Another_User:passwd
balance roundrobin
option httpclose
option forwardfor
server lamp1 10.0.0.1:80 check
server lamp2 10.0.0.2:80 check
这里的haproxy.cfg只是一个案例,你可以根据实际情况修改
二、如何在Linux上使用HAProxy配置HTTP负载均衡系统
前提条件你至少需要一台(最好是两台)网站服务器来证实所搭建负载均衡系统的功能。我们假设,后端HTTP网站服务器已经搭建并运行起来。
将HAProxy安装到Linux上
就大多数发行版而言,我们可以使用你所用发行版的软件包管理器来安装HAProxy。
将HAProxy安装到Debian上
在Debian中,我们需要为Wheezy添加向后移植功能。为此,请在/etc/apt/sources.list.d中创建一个名为“backports.list”的新文件,其内容如下:
deb wheezybackports main
更新你的软件库数据,并安装HAProxy。
# apt get update # apt get install haproxy
将HAProxy安装到Ubuntu上
# apt get install haproxy
将HAProxy安装到CentOS和RHEL上
# yum install haproxy
配置HAProxy
在本教程中,我们假设有两台HTTP网站服务器已搭建并运行起来,其IP地址分别为192.168.100.2和192.168.100.3。我们还假设,负载均衡系统将在IP地址为192.168.100.4的那台服务器处进行配置。
为了让HAProxy发挥功用,你需要更改/etc/haproxy/haproxy.cfg中的几个项目。这些变更在本章节中予以描述。万一某个配置对不同的GNU/Linux发行版而言有所不同,会在相应段落中加以注明。
1. 配置日志功能
你首先要做的工作之一就是,为你的HAProxy建立合适的日志功能,这对将来进行调试大有用处。日志配置内容位于/etc/haproxy/haproxy.cfg的global部分。下面这些是针对特定发行版的指令,用于为HAProxy配置日志。
CentOS或RHEL:
要想在CentOS/RHEL上启用日志功能,把:
log 127.0.0.1 local2
换成:
log 127.0.0.1 local0
下一步,在/var/log中为HAProxy创建单独的日志文件。为此,我们需要改动当前的rsyslog配置。为了让配置简单而清楚,我们将在/etc/rsyslog.d/中创建一个名为haproxy.conf的新文件,其内容如下。
$ModLoad imudp $UDPServerRun 514 $template Haproxy,"%msg%\n" local0.=info /var/log/haproxy.log;Haproxy local0.notice /var/log/haproxystatus.log;Haproxy local0.* ~
该配置将把基于$template的所有HAProxy消息隔离到/var/log中的日志文件。现在,重启rsyslog,让变更内容生效。
# service rsyslog restart
Debian或Ubuntu:
要想在Debian或Ubuntu上为HAProxy启用日志功能,把:
log /dev/log local0 log /dev/log local1 notice
换成:
log 127.0.0.1 local0
下一步,为HAProxy配置单独的日志文件,编辑/etc/rsyslog.d/中一个名为haproxy.conf的文件(或者Debian中的49-haproxy.conf),其内容如下。
$ModLoad imudp $UDPServerRun 514 $template Haproxy,"%msg%\n" local0.=info /var/log/haproxy.log;Haproxy local0.notice /var/log/haproxystatus.log;Haproxy local0.* ~
该配置将把基于$template的所有HAProxy消息隔离到/var/log中的日志文件。现在,重启rsyslog,让变更内容生效。
# service rsyslog restart
2. 设置默认值
下一步是为HAProxy设置默认变量。找到/etc/haproxy/haproxy.cfg中的defaults部分,把它换成下列配置。
log global mode http option httplog option dontlognull retries 3 option redispatch maxconn 20000 contimeout 5000 clitimeout 50000 srvtimeout 50000
上述配置推荐HTTP负载均衡器使用,但可能不是最适合你环境的解决方案。如果那样,请参阅HAProxy参考手册页,进行适当的改动和调整。
3. 网站服务器集群的配置
网站服务器集群(Webfarm)的配置定义了可用的HTTP服务器集群。我们所建负载均衡系统的大部分设置都将放在这里。现在,我们将创建一些基本的配置,我们的节点将在这里加以定义。把从frontend部分到文件末尾的所有配置换成下列代码:
listen webfarm *:80 mode http stats enable stats uri /haproxy?stats stats realm Haproxy\ Statistics stats auth haproxy:stats balance roundrobin cookie LBN insert indirect nocache option httpclose option forwardfor server web01 192.168.100.2:80 cookie node1 check server web02 192.168.100.3:80 cookie node2 check
“listen webfarm *:80”这一行定义了我们的负载均衡系统将侦听哪些接口。出于本教程的需要,我将该值设为“*”,这让负载均衡系统侦听我们的所有接口。在实际场景下,这可能不合意,应该换成可从互联网来访问的某个接口。
stats enable stats uri /haproxy?stats stats realm Haproxy\ Statistics stats auth haproxy:stats
上述设置声明,可以在http:///haproxy?stats处访问负载均衡系统的统计数字。这种访问由简单的HTTP验证以及登录名“haproxy”和密码“stats”来确保安全。这些设置应该换成你自己的登录信息。如果你不想让这些统计数字被人看到,那么可以完全禁用它们。
三、Java web项目,怎么做负载均衡啊?
HAProxy是一款反向代理服务器工具,通过它,可以实现负载均衡。它支持双机热备支持虚拟主机,但其配置简单,拥有非常不错的服务器健康检查功能,当其代理的后端服务器出现故障, HAProxy会自动将该服务器摘除,故障恢复后再自动将该服务器加入。新的1.3引入了frontend,backend,frontend根据任意HTTP请求头内容做规则匹配,然后把请求定向到相关的backend.利用HAPorxy实现负载均衡
1. 利用HAProxy实现负载均衡
192.168.169.137 (haproxy)———负载均衡———-(192.168.169.117;192.168.169.118)
安装配置HAproxy
cd /usr/local/
wget
tar zxvf haproxy-1.3.14.2.tar.gz
mv haproxy-1.3.14.2 haproxy
cd haproxy
make TARGET=linux26
2. 创建配置文件
# vi haproxy.cfg
global
maxconn 5120
chroot /usr/local/haproxy
uid 99
gid 99
daemon
quiet
nbproc 2 #通过nbproc多设置几个haproxy并发进程,这样每个进程的task_queue相对就会短很多,性能自然就能提高不少
#pidfile /var/run/haproxy-private.pid
defaults
log global
mode http
option httplog
option dontlognull
log 127.0.0.1 local3
retries 3
option redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen webfarm 0.0.0.0:80
mode http
stats uri /haproxy-stats #监控haproxy状态
stats realm Haproxy\ statistics
stats auth netseek:52netseek #设置状态监控的用户名为netseek密码为52netseek
balance roundrobin #负载均衡算法
cookie SERVERID insert indirect
option httpclose #
option forwardfor #apache日志转发功能
option httpchk HEAD /check.txt HTTP/1.0 #健康检测
server app_bbs1 192.168.169.117:80 cookie app1inst1 check inter 2000 rise 2 fall 5
server app_bbs2 192.168.169.118:80 cookie app1inst2 check inter 2000 rise 2 fall 5
syslog.conf里加一行
local3.* /var/log/haproxy.log
# touch /var/log/haproxy.log
# chown haproxy:haproxy /var/log/haproxy.log
# chmod u+x /var/log/haproxy.log
# tail –f /var/log/harpoxy.log 监控日志
# ./haproxy -f haproxy.cfg 启动服务.
监控状态图示 ,输入用户名密码查看状态。
后端apache日志处理
配置httpd.conf
LogFormat “%{X-Forwarded-For}i %l %u %t \”%r\” %>s %b ” combined
CustomLog /var/log/httpd/access_log combined
虚拟主机不记录检测日志:
SetEnvIf Request_URI “^/check\.txt$” dontlog
LogLevel warn
ErrorLog /var/log/httpd/vhost_error.log
CustomLog /var/log/httpd/vhost_access.log combined env=!dontlog
相关介绍
#./haproxy –help //haproxy相关命令参数介绍.
haproxy -f [-n 最大并发连接总数] [-N 每个侦听的最大并发数] [-d] [-D] [-q] [-V] [-c] [-p ] [-s] [-l] [-dk]
[-ds] [-de] [-dp] [-db] [-m ] [{-sf|-st} pidlist...]
-d 前台,debug模式
-D daemon模式启动
-q 安静模式,不输出信息
-V 详细模式
-c 对配置文件进行语法检查
-s 显示统计数据
-l 显示详细统计数据
-dk 不使用kqueue
-ds 不使用speculative epoll
-de 不使用epoll
-dp 不使用poll
-db 禁用后台模式,程序跑在前台
-sf
程序启动后向pidlist里的进程发送FINISH信号,这个参数放在命令行的最后
-st
程序启动后向pidlist里的进程发送TERMINATE信号,这个参数放在命令行的最后
关于十大免费代理ip软件的问题,通过《如何在Linux上使用HAProxy配置HTTP负载均衡系统》、《Java web项目,怎么做负载均衡啊?》等文章的解答希望已经帮助到您了!如您想了解更多关于十大免费代理ip软件的相关信息,请到本站进行查找!
爱资源吧版权声明:以上文中内容来自网络,如有侵权请联系删除,谢谢。