负载均衡
vim /etc/haproxy/haproxy.cfg
监听80端口,可以监听很多端口的
62 #---------------------------------------------------------------------
63 frontend main
64 bind *:80
65 default_backend webserver
66 #默认后端服务器组 后端服务器组名
67 #---------------------------------------------------------------------
73 #---------------------------------------------------------------------
74 backend webserver #后端服务器组
75 balance roundrobin
76 server server1 172.25.27.102:80 check #节点1
77 server server2 172.25.27.103:80 check #节点2
78
源码编译
haproxy-1.7.3可以生成rpm,因为他的examples下有.spec文件
修改日至格式
vim /etc/rsyslog.conf
#打开这两行注释,接收外来日志
15 $ModLoad imudp
16 $UDPServerRun 514
复制这一行代码 24 local2.* /var/log/haproxy.log
到/etc/rsyslog.conf的72行
systemctl start rsyslog.service
systemctl start haproxy.service
测试:
curl 172.25.27.101
cat /var/log/haproxy.log
监控
stats uri /admin/stats 监控后端状态
stats auth admin:westos 设置访问密码
stats refresh 5s 5妙刷新状态
monitor-uri /monitoruri 获取状态码
访问控制
frotend mian
bind *:80
acl blacklist src 172.25.25.100 不允许100这台主机访问
http-request deny if blacklist
errorloc 403 http://172.25.27.101:8080/index.html 报403时,指定到101的默认页面
default_backend webserver
动静分离
frontend main
bind *:80
use_backend dynamic if { path_end .php } 如果时以php结尾的请求,访问dynamic服务器组
default_backend static 默认访问static服务器组
backend dynamic 动态资源组
balance roundrobin
server web1 172.25.27.102:80 check
backend static 静态资源组
balance roundrobin
server web2 172.25.27.103:80 check
读写分离
frontend main
bind *:80
acl read method HEAD
acl read method GET
acl write method POST
acl write method PUT
use_backend dynamic if write
use_backend static if read
default_backend static
backend dynamic
balance roundrobin
server web1 172.25.27.102:80 check
backend static
balance roundrobin
server web2 172.25.27.103:80 check