配置案例
优质
小牛编辑
129浏览
2023-12-01
前端调度器IP:192.168.1.210 后端应用服务器IP: 192.168.1.111 和 192.168.1.112
1,定义独立日志文件
[root@node1 haproxy]# vim /etc/rsyslog.conf #为其添加日志功能 # Provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 ------>启动udp,启动端口后将作为服务器工作 # Provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514 ------>启动tcp监听端口 local2.* /var/log/haproxy.log [root@node1 haproxy]# service rsyslog restar [root@LB haproxy]# vim haproxy.cfg log 127.0.0.1 local2 --------->在global端中添加此行
2,一个最简单的http服务的配置:
global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon stats socket /var/lib/haproxy/stats defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 frontend webser #webser为名称 option forwardfor bind *:80 default_backend app backend app balance roundrobin #使拥roundrobin 算法 server app1 192.168.1.111:80 check server app2 192.168.1.112:80 check
3,haproxy统计页面的输出机制
frontend webser log 127.0.0.1 local3 option forwardfor bind *:80 default_backend app backend app cookie node insert nocache balance roundrobin server app1 192.168.1.111:80 check cookie node1 intval 2 rise 1 fall 2 server app2 192.168.1.112:80 check cookie node2 intval 2 rise 1 fall 2 server backup 127.0.0.1:8010 check backup listen statistics bind *:8009 # 自定义监听端口 stats enable # 启用基于程序编译时默认设置的统计报告 stats auth admin:admin # 统计页面用户名和密码设置 stats uri /admin?stats # 自定义统计页面的URL,默认为/haproxy?stats stats hide-version # 隐藏统计页面上HAProxy的版本信息 stats refresh 30s # 统计页面自动刷新时间 stats admin if TRUE #如果认证通过就做管理功能,可以管理后端的服务器 stats realm Hapadmin # 统计页面密码框上提示文本,默认为Haproxy\ Statistics
4,动静分离示例:
frontend webservs bind *:80 acl url_static path_beg -i /static /images /javascript /stylesheets acl url_static path_end -i .jpg .gif .png .css .js .html acl url_php path_end -i .php acl host_static hdr_beg(host) -i img. imgs. video. videos. ftp. image. download. use_backend static if url_static or host_static use_backend dynamic if url_php default_backend dynamic backend static balance roundrobin server node1 192.168.1.111:80 check maxconn 3000 backend dynamic balance roundrobin server node2 192.168.1.112:80 check maxconn 1000
5,http服务器配置完整示例
#--------------------------------------------------------------------- # Global settings #--------------------------------------------------------------------- global # to have these messages end up in /var/log/haproxy.log you will # need to: # # 1) configure syslog to accept network log events. This is done # by adding the '-r' option to the SYSLOGD_OPTIONS in # /etc/sysconfig/syslog # # 2) configure local2 events to go to the /var/log/haproxy.log # file. A line like the following can be added to # /etc/sysconfig/syslog # # local2.* /var/log/haproxy.log # log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 30000 listen stats mode http bind 0.0.0.0:1080 stats enable stats hide-version stats uri /haproxyadmin?stats stats realm Haproxy\ Statistics stats auth admin:admin stats admin if TRUE frontend http-in bind *:80 mode http log global option httpclose option logasap #不等待响应结束就记录日志,表示提前记录日志,一般日志会记录响应时长,此不记录响应时长 option dontlognull #不记录空信息 capture request header Host len 20 #记录请求首部的前20个字符 capture request header Referer len 60 #referer跳转引用,就是上一级 default_backend servers frontend healthcheck bind :1099 #定义外部检测机制 mode http option httpclose option forwardfor default_backend servers backend servers balance roundrobin server websrv1 192.168.1.111:80 check maxconn 2000 server websrv2 192.168.1.112:80 check maxconn 2000
6,负载均衡MySQL服务的配置示例
#--------------------------------------------------------------------- # Global settings #--------------------------------------------------------------------- global # to have these messages end up in /var/log/haproxy.log you will # need to: # # 1) configure syslog to accept network log events. This is done # by adding the '-r' option to the SYSLOGD_OPTIONS in # /etc/sysconfig/syslog # # 2) configure local2 events to go to the /var/log/haproxy.log # file. A line like the following can be added to # /etc/sysconfig/syslog # # local2.* /var/log/haproxy.log # log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon defaults mode tcp log global option httplog option dontlognull retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 600 listen stats mode http bind 0.0.0.0:1080 stats enable stats hide-version stats uri /haproxyadmin?stats stats realm Haproxy\ Statistics stats auth admin:admin stats admin if TRUE frontend mysql bind *:3306 mode tcp log global default_backend mysqlservers backend mysqlservers balance leastconn server dbsrv1 192.168.1.111:3306 check port 3306 intval 2 rise 1 fall 2 maxconn 300 server dbsrv2 192.168.1.112:3306 check port 3306 intval 2 rise 1 fall 2 maxconn 300