程序环境:
主程序: /usr/sbin/haproxy
配置文件: /etc/haproxy/haproxy.cfg
Unit file: /usr/lib/systemd/system/haproxy.service
配置段:
• global:全局配置段
进程及安全配置相关的参数
性能调整相关参数
Debug参数
• proxies:代理配置段
defaults:为frontend, backend, listen提供默认配置
frontend:前端,相当于nginx中的server {}
backend:后端,相当于nginx中的upstream {}
listen:同时拥有前端和后端配置::
1.基础配置文件
[root@node04 haproxy]# pwd
/etc/haproxy
[root@node04 haproxy]# vim haproxy.cfg
global
maxconn 100000
chroot /usr/local/haproxy
#stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin
uid 99
gid 99
daemon
nbproc 2
cpu-map 1 0 haproxy第一个进程绑定到第0个CPU上
cpu-map 2 1 haproxy第二个进程绑定到第1个CPU上
#cpu-map 3 2
#cpu-map 4 3
pidfile /usr/local/haproxy/run/haproxy.pid
log 127.0.0.1 local3 info
defaults
option http-keep-alive
option forwardfor
maxconn 100000
mode http
timeout connect 300000ms
timeout client 300000ms
timeout server 300000ms
listen stats
mode http
bind 0.0.0.0:9999
stats enable
log global
stats uri /haproxy-status
stats auth haadmin:q1w2e3r4ys
listen web_port
bind 0.0.0.0:80
mode http
log global
server web1 127.0.0.1:8080 check inter 3000 fall 2 rise 5
2.官方配置文件示例
#官网业务访问入口======================================
frontend WEB_PORT_80
bind 192.168.7.248:80
mode tcp
use_backend web_prot_http_nodes
backend web_prot_http_nodes
mode tcp
option forwardfor
server 192.168.7.101 192.168.7.101:80 check inter 3000 fall 3 rise 5
server 192.168.7.102 192.168.7.102:80 check inter 3000 fall 3 rise 5
#官网业务访问入口======================================
frontend WEB_PORT_443
bind 192.168.7.248:443
mode tcp
use_backend web_prot_https_nodes
backend web_prot_https_nodes
mode tcp
option forwardfor
server 192.168.7.101 192.168.7.101:443 check inter 3000 fall 3 rise 5
server 192.168.7.102 192.168.7.102:443 check inter 3000 fall 3 rise 5
使用listen替换frontend和backend的配置方式:
#官网业务访问入口=====================================
listen WEB_PORT_80
bind 192.168.7.102:80
mode http
option forwardfor
server web1 192.168.7.101:8080 check inter 3000 fall 3 rise 5
server web2 192.168.7.101:8080 check inter 3000 fall 3 rise 5
3.多个配置文件
在业务比较多的时候需要在主配置文件/etc/haproxy/haproxy.cfg配置较多的VIP和配置,时间一长多达数百行,后期进行更改会比较麻烦,而haproxy有没有Nginx的include功能可以直接导入其他目录的配置文件,因此通过自带参数-f实现配置文件导入功能,可以安装业务配置不同的 XX.cfg文件,然后在haproxy服务启动脚本里面进行配置即可,具体如下:
cat /usr/lib/systemd/system/haproxy.service
[Unit]
Description=HAProxy Load Balancer
After=syslog.target network.target
[Service]
EnvironmentFile=/etc/sysconfig/haproxy
ExecStart=/usr/sbin/haproxy-systemd-wrapper -f /etc/haproxy/haproxy.cfg -f /etc/haproxy/selfconf -p /run/haproxy.pid $OPTIONS
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target
/etc/haproxy/selfconf 为自定义配置文件目录,下面可以创建多个配置文件
4.独立的haproxy日志配置(rsyslog)
其中local3.* 与配置文件中的日志配置保持一致
[root@node04 haproxy-1.8.20]# vim /etc/rsyslog.conf
local3.* /var/log/haproxy.log
$ModLoad imudp
$UDPServerRun 514
[root@node04 haproxy-1.8.20]# systemctl restart haproxy
[root@node04 haproxy-1.8.20]# systemctl restart rsyslog
[root@node04 haproxy-1.8.20]# ll /var/log/ha*
-rw-------. 1 root root 129 Jul 15 01:22 /var/log/haproxy.log