haproxy(简称HA,web负载均衡)

简介:


haproxy(简称HA)


HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案


http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.20.tar.gz


# tar zcvf haproxy-1.3.20.tar.gz

# cd haproxy-1.3.20

# vi Makefile

PREFIX = /usr/local/haproxy   (原为PREFIX = /usr/local)

:wq

# make TARGET=linux26

# make install

 

haproxy应用时有2种方式,linsten方式和frontend+backend方式

 

方式一(listen):

 

# vi /usr/local/haproxy/haproxy.cfg


global

log 127.0.0.1 local0
maxconn 4096
chroot /usr/local/haproxy
uid 99 
gid 99 
daemon
nbproc 1
pidfile /usr/local/haproxy/haproxy.pid


defaults

log global
log 127.0.0.1 local3 
option httplog 
option httpclose
option dontlognull
option forwardfor
option redispatch
retries 2 
maxconn 2000
mode http 
stats uri /haproxy-status 
stats auth ming:123456
stats refresh 30s
monitor-uri /site_status
contimeout 5000
clitimeout 50000
srvtimeout 50000

 


listen web 192.168.1.10:1080
balance roundrobin 
server yang 192.168.1.10:80 check 
server ming 192.168.1.12:80 check

 

:wq

 

方式二(frontend+backend):

 

# vi /usr/local/haproxy/haproxy.cfg


global

log 127.0.0.1 local0
maxconn 4096
chroot /usr/local/haproxy
uid 99 
gid 99 
daemon
nbproc 1
pidfile /usr/local/haproxy/haproxy.pid



defaults

log global
log 127.0.0.1 local3 
option httplog 
option httpclose
option dontlognull
option forwardfor
option redispatch
retries 2 
maxconn 2000
mode http 
stats uri /haproxy-status 
stats auth ming:123456
stats refresh 30s
monitor-uri /site_status
contimeout 5000
clitimeout 50000
srvtimeout 50000

frontend web 192.168.1.10:1080        
default_backend aa   

backend aa  
balance roundrobin     
server yang  192.168.1.10:80 check   
server  ming  192.168.1.12:80 check

:wq

 

启动haproxy

# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

开机自启动:

# vi /etc/rc.local

 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

:wq

查看haproxy页面:

http://192.168.1.10:1080/haproxy-status   

用户名:ming   密码:123456

 

验证效果:

在2主机上分别建2个页面1.html  内容写各自主机ip

 

http://192.168.1.10:1080/1.html

第一次会显示192.168.1.10

第二次会显示192.168.1.12

 

注:

1、1080是haproxy的端口号,是随意写的,可改

2、可以把ip改成域名(如www.ming.com),甚至可以把web的80端口改了,让haproxy用80,这样访问时就不能再加端口了

3、电脑重启后/etc/init.d/httpd 会被改为/etc/init.d/httpd.rpmorig ,要自己改回来,chkconfig开机启动命令也要再重写一遍,原因不详


 

附:


global:参数是进程级的,通常和操作系统(OS)相关

defaults:配置默认参数,这些参数可以被利用配置到frontend,backend,listen组件

frontend:接收请求的前端虚拟节点,Frontend可以根据规则直接指定具体使用后端的 backend(可动态选择)

backend:后端服务集群的配置,是真实的服务器,一个Backend对应一个或者多个实体服务器

listen:Frontend和Backend的组合体

 

log 127.0.0.1 local0             使用系统的syslog记录日志

maxconn 4096                     限制单个进程的最大连接数

option redispatch                 在连接失败或断开的情况下,允许当前会话被重新分发

retries 2                             设置在一个服务器上链接失败后的重连次数

balance roundrobin            设置服务器分配算法为轮询(即交替访问)
 

option dontlognull              不记录空连接

contimeout 5000               设置等待连接到服务器成功的最大时间

clitimeout 50000              设置客户端的最大超时时间

srvtimeout 50000              设置服务器端的最大超时时间

nbproc 1                          指定作为守护进程运行的时候,要创建多少个进程,默认只创建一个,需要daemon开启模式

daemon                            让进程在后台运行,即作为守护进程运行,正式运行的时候开启,此处先禁止,等同于在命令行添加参数 -D


 

debug                             设置debug模式运行,与daemon模式互斥,等同于在命令行添加参数 -d


 

1080                                监听端口(随意)

mode http                         http的7层模式


 

stats refresh 30s                 统计页面自动刷新时间

stats uri /haproxy-stats          统计页面URL


 

stats realm Haproxy\ Statistics             统计页面密码框上提示文本

stats auth ming:123456               统计页面用户名和密码设置

stats hide-version                      隐藏统计页面上HAProxy的版本信息

monitor-uri /site_status         网站健康检测URL,用来检测HAProxy管理的网站是否可以用,正常返回200,不正常返回500

 

weight  -- 调节服务器的负重

check -- 允许对该服务器进行健康检查

inter  -- 设置连续的两次健康检查之间的时间,单位为毫秒(ms),默认值 2000

rise  -- 指定多少次连续成功的健康检查后,即可认定该服务器处于可操作状态,默认值 2

fall  -- 指定多少次不成功的健康检查后,认为服务器为当掉状态,默认值 3

 

balance roundrobin     简单的轮询

balance source           根据请求的源IP 

balance uri                根据请求的url
 
balance url_param     根据请求RUL中的参数

本文转自linux博客51CTO博客,原文链接http://blog.51cto.com/yangzhiming/865706如需转载请自行联系原作者


yangzhimingg

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
监控 Apache
HAProxy的高级配置选项-Web服务器状态监测
这篇文章介绍了HAProxy的高级配置选项,特别是如何进行Web服务器状态监测,包括基于四层传输端口监测、基于指定URI监测和基于指定URI的request请求头部内容监测三种方式,并通过实战案例展示了配置过程和效果。
641 8
HAProxy的高级配置选项-Web服务器状态监测
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
1109 3
|
负载均衡 监控 算法
论负载均衡技术在Web系统中的应用
【11月更文挑战第4天】在当今高并发的互联网环境中,负载均衡技术已经成为提升Web系统性能不可或缺的一环。通过有效地将请求分发到多个服务器上,负载均衡不仅能够提高系统的响应速度和处理能力,还能增强系统的可扩展性和稳定性。本文将结合我参与的一个实际软件项目,从项目概述、负载均衡算法原理以及实际应用三个方面,深入探讨负载均衡技术在Web系统中的应用。
526 2
|
负载均衡 算法 应用服务中间件
负载均衡技术在Web服务器集群中的应用
【8月更文第28天】随着互联网的发展和用户对Web服务需求的增长,单台服务器很难满足大规模访问的需求。为了提高系统的稳定性和扩展性,通常会采用Web服务器集群的方式。在这种架构中,负载均衡器扮演着至关重要的角色,它能够合理地分配客户端请求到不同的后端服务器上,从而实现资源的最优利用。
628 2
|
负载均衡 算法 前端开发
HAProxy 和负载均衡概念简介
HAProxy 和负载均衡概念简介
370 3
|
存储 负载均衡 应用服务中间件
Web架构&OSS存储&负载均衡&CDN加速&反向代理&WAF防护
Web架构&OSS存储&负载均衡&CDN加速&反向代理&WAF防护
624 1
|
负载均衡 算法 前端开发
Haproxy搭建Web群集
这只是一个基本的HAProxy配置示例,你可以根据需要进行更高级的配置,包括SSL终端、健康检查、ACL(Access Control List)等。确保HAProxy的配置文件中的语法正确,以避免错误。在生产环境中,还应该考虑安全性和高可用性等因素。
279 7
|
负载均衡 算法 网络协议
LVS、Nginx和HAProxy负载均衡器对比总结
LVS、Nginx和HAProxy负载均衡器对比总结
|
负载均衡 监控 网络协议
使用haproxy实现负载均衡集群
【4月更文挑战第14天】HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,快速并且可靠的一种解决方案。
901 1
|
负载均衡 网络协议 应用服务中间件
【亮剑】在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。
【4月更文挑战第30天】本文介绍了在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。HAProxy是一个高性能的开源TCP和HTTP负载均衡器,适合处理大量并发连接;Nginx是一个多功能Web服务器和反向代理,支持HTTP、HTTPS和TCP负载均衡,同时提供缓存和SSL功能;Keepalived用于监控和故障切换,通过VRRP实现IP热备份,保证服务连续性。文中详细阐述了如何配置这三个工具实现负载均衡,包括安装、配置文件修改和启动服务,为构建可靠的负载均衡系统提供了指导。
485 0

热门文章

最新文章

相关实验场景

更多