Haproxy简介:
- HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。
- HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。
- HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户空间(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。
实验环境(RHEL6.5)
selinux和iptables状态为disabled
主机 | IP |
---|---|
server1(Haproxy) | 172.25.254.1 |
server2(Apache) | 172.25.254.2 |
server3(Apache) | 172.25.254.3 |
Haproxy相关配置:
一、负载均衡
server1配置:
- 官网下载haproxy软件包,并解压,制作rpm包进行安装
[root@server1 ~]# tar zxf haproxy-1.7.3.tar.gz
[root@server1 ~]# cd haproxy-1.7.3
[root@server1 haproxy-1.7.3]# ls
CHANGELOG doc include Makefile scripts tests
contrib ebtree LICENSE README src VERDATE
CONTRIBUTING examples MAINTAINERS ROADMAP SUBVERS VERSION
[root@server1 haproxy-1.7.3]# cd ..
[root@server1 ~]# yum install -y rpm-build pcre-devel gcc
[root@server1 ~]# rpmbuild -tb haproxy-1.7.3.tar.gz
[root@server1 ~]# ls ##自动成rpmbuild
haproxy-1.7.3 haproxy-1.7.3.tar.gz rpmbuild
[root@server1 ~]# cd rpmbuild/RPMS/x86_64/
[root@server1 x86_64]# pwd
/root/rpmbuild/RPMS/x86_64
[root@server1 x86_64]# ls
haproxy-1.7.3-1.x86_64.rpm
[root@server1 x86_64]# rpm -ivh haproxy-1.7.3-1.x86_64.rpm
Preparing... ########################################### [100%]
1:haproxy ########################################### [100%]
==这里涉及到制作rpm包,当解压后的文件中有src这个文件的时候,我们可以通过rpm-build这条命令来制作rpm包,rpm包安装的时候它会把相关配置文件、日志文件等放到相应的目录下 ==
- 拷贝配置文件到/etc/haproxy目录下,并进行编辑,
[root@server1 ~]# cp haproxy-1.7.3/examples/content-sw-sample.cfg /etc/haproxy/haproxy.cfg
[root@server1 ~]# vim /etc/haproxy/haproxy.cfg
## 为了使配置文件看起来方便,我删除了没用的字符
global
maxconn 10000
stats socket /var/run/haproxy.stat mode 600 level admin
log 127.0.0.1 local0
uid 200
gid 200
chroot /var/empty
daemon
defaults