必须安装epel源 再装haproxy
关防火墙,selinux
systemctl stop firewalld && setenforce 0
制定一个机器做时间服务器,开启xshell批量执行命令功能
ntpdate ip
安装epel源
yum -y install epel-release.noarch
安装HAproxy
yum -y install haproxy
配置信息
vim /etc/haproxy/haproxy.cfg
global # 全局配置
log 127.0.0.1 local3 info # 日志配置 日志级别
maxconn 4096 # 最大连接限制 (优先级低)
uid nobody # 用户
gid nobody # 组用户
daemon # 守护进程运行(常驻在内存当中,不会停止)
nbproc 1 # haproxy进程数(单进程 异步)
defaults # 后端服务器的默认配置
log global # 日志配置实用全局配置
mode http # 模式7层LB
maxconn 2048 # 最大连接数(优先级中)
retries 3 # 健康检查 3次连接失败就认为服务器不可用
option redispatch # 服务不可用之后重定向到其他服务器
stats uri/haproxy # 测试页面(可视化窗口) 也可以用zabbix进行集中监控
stats auth cuiheran:123456 # 接着上一个的用户名和密码
comtimeout 5000 # 转发给后端等待的服务器的时间
clitimeout 50000 # haproxy作为客户机和用户的等待时间,等50秒就断开
srvtimeout # 一个连前面的一个连后面的(haproxy作为服务器)
frontend http-in # 前面的终端(客户机)
bind 0.0.0.0:80 # 绑定的地址
mode http # 前端处理模式7层代理模型
log global # 使用全局配置(优先级高)
option httplog # 记录日志的格式httplog格式,比较丰富
option httpclose # 将session记下来 转发到上一次cookie
acl html url_reg -i \.html|$ # 1.acl:访问控制列表html 用正则表达式匹配 以.html结尾的都可以
use_backend html-server if html # 2.如果匹配了请求就找后端服务器进行处理
default_backend html-server # 3.默认的后端
backend html-server # 面向后面的服务器
mode http # 模式是7层http
balance roundrobin # 轮询
option httpchk GET/index.html
cookie SERVERID insert indirect nocache
server html-A web1:80 weight cookie 3 check inter 2000 rise 2 fall 5 # web1:如果没有做域名解析要写ip
server html-B web2:80 weight cookie 4 check inter 2000 rise 2 fall 5
systemctl start haproxy
elinks --dump http://ip
如果做动静分离只需要将后缀名改一下将web 3/4 专门放.py的文件
也可以将图片专门放在一个服务器里web 5/6
本质就是通过正则表达式匹配后缀