1、上传
rz haproxy
2、解压缩
tar -zxvf haproxy-1.8.14.tar.gz
3、安装
cd haproxy
make TARGET=linux2628 PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy
4、配置
用户
useradd -r -s /nologin haproxy
将二进制文件复制到"/usr/sbin/"目录下
cp /usr/local/haproxy/sbin/haproxy /usr/sbin/haproxy
将可执行脚本文件复制到"/etc/init.d/"目录下
进入解压后的haproxy-1.8.14目录下(下面的命令是在haproxy-1.8.14目录下操作的)
cd examples
cp haproxy.init /etc/init.d/haproxy
给/etc/init.d 目录下的haproxy脚本文件可执行权限
chmod +x /etc/init.d/haproxy
主配置文件目录
mkdir /etc/haproxy/
在/etc/haproxy/目录下新建配置文件haproxy.cfg
touch haproxy.cfg
注:配置文件的内容为此文档最下面的内容,记得更改IP地址
日志
vim /etc/rsyslog.conf
删除15、16行注释号,并添加
local3.* /var/log/haproxy.log
在vim下设置行号的命令为 :set nu (在命令模式,非编辑模式下使用)
开启haproxy
service haproxy start
5.测试
注:因作业的haproxy负载均衡是基于域名的acl的,所以测试需要修改hosts文件内容
Windows下:
修改目录C:\Windows\System32\drivers\etc 下的hosts(如果找不到,应该是默认隐藏了,将文件查看中显示隐藏
文件选项勾选;另:window10第一次修改可能比较麻烦,需要修改权限,请自行百度)
添加:
IP www.test.com
IP bbs.test.com
IP为安装haproxy虚拟机的IP地址
打开浏览器:浏览www.test.com 会显示backend server_www对应的虚拟机web的主页
浏览bbs.test.com会显示backend server_bbs对应的虚拟机web的主页
浏览其他url会显示backend http_back对应的虚拟机web的主页
浏览 IP:8080/haproxy-status(IP为安装haproxy的虚拟机的IP地址)
会弹出账号密码验证
账号:admin
密码:123456
账号和密码可在配置文件中自己修改
验证成功后,会显示haproxy对后台web的管理页面
6.注释:记得关闭防火墙,开启haproxy要用service haproxy start,不要用systemctl start haproxy,
使用systemctl总是无法成功,具体原因暂不清楚,有待查询
要确保web服务器能正常访问;
其他问题暂时没想到
haproxy主配置文件:
global
log 127.0.0.1 local3 info
chroot /usr/local/haproxy
user haproxy
group haproxy
daemon
maxconn 4000
defaults
log global
mode http
option httplog
option dontlognull
listen admin_stats
bind 0.0.0.0:8080
mode http
log 127.0.0.1 local3 err
stats refresh 30s
stats uri /haproxy-status
stats realm welcome login\ Haproxy
stats auth admin:123456
stats hide-version
stats admin if TRUE
frontend http_front
bind *:80
stats uri /haproxy?stats
#acl_policy
acl host_www hdr_reg(host) -i ^(www.test.com)
acl host_bbs hdr_dom(host) -i bbs.test.com
use_backend server_www if host_www
use_backend server_bbs if host_bbs
default_backend http_back
backend server_www
balance roundrobin
option httpchk GET /index.html
option forwardfor header X-Forwarded-For
server node1 192.168.4.199:80 check inter 2000 rise 3 fall 3 weight 30
backend server_bbs
balance roundrobin
option httpchk GET /index.html
option forwardfor header X-Forwarded-For
server node1 192.168.4.100:80 check inter 2000 rise 3 fall 3 weight 30
backend http_back
balance roundrobin
option httpchk GET /index.html
option forwardfor header X-Forwarded-For
server node1 192.168.4.100:80 check inter 2000 rise 3 fall 3 weight 30