haproxy简述
简述
1定义
2为啥使用LB
3LB类型
4应用场景
安装
1解决lua环境
CentOS7 之前版本自带的lua版本比较低并不符合HAProxy要求的lua最低版本(5.3)的要求
2编译haproxy
[root@centos7-1 ~]# haproxy -v
HA-Proxy version 2.2.11-c58c4e4 2021/03/18 - https://haproxy.org/
Status: long-term supported branch - will stop receiving fixes around Q2 2025.
Known bugs: http://www.haproxy.org/bugs/bugs-2.2.11.html
Running on: Linux 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_6
3配置service文件
[root@centos7-1 ~]# cat /usr/lib/systemd/system/haproxy.service [Unit] Description=HAProxy Load Balancer After=syslog.target network.target [Service] ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /var/lib/haproxy/haproxy.pid
ExecReload=/bin/kill -USR2 $MAINPID LimitNOFILE=100000 [Install] WantedBy=multi-user.target
注意点:1需要手动创建/etc/haproxy目录和etc/haproxy/haproxy.cfg文件2创建/var/lib/haproxy目录,生成pid
[root@centos7-1 ~]#mkdir /var/lib/haproxy
[root@centos7-1 ~]#mkdir /etc/haproxy
[root@centos7-1 ~]# cat /etc/haproxy/haproxy.cfg
global
maxconn 100000
chroot /apps/haproxy 锁定运行目录
stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin
#uid 99
#gid 99
user haproxy
group haproxy
daemon
nbproc 4 开启haproxy的worker进程数,与线程互斥
#nbthread n 开启多线程
#cpu-map 1 0 worker绑定cpu
#cpu-map 2 1
#cpu-map 3 2
#cpu-map 4 3
pidfile /var/lib/haproxy/haproxy.pid
log 127.0.0.1 local2 info
defaults
option http-keep-alive 开启与客户端的会话保持
option forwardfor 透传客户端真实ip给后端web
maxconn 100000 连接数
mode http 默认工作类型,使用tcp性能更好
timeout connect 300000ms 客户端从haproxy到后端server最长连接等待时间(tcp连接之前)
timeout client 300000ms 客户端和haproxy的最长非活动时间,建议和timeout server相同
timeout server 300000ms 客户端请求从haproxy到后端服务器请求处理超时时间(tcp连接之后)
listen stats
mode http
bind 0.0.0.0:9999
stats enable
log global
stats uri /haproxy-status
stats auth haadmin:123456
listen web_port
bind 192.168.10.31:80
mode http
log global
server web1 127.0.0.1:8080 check inter 3000 fall 2 rise 5
4检查服务
[root@centos7-1 ~]# systemctl daemon-reload
[root@centos7-1 ~]# systemctl enable --now haproxy
Created symlink from /etc/systemd/system/multi-user.target.wants/haproxy.service to /usr/lib/systemd/system/haproxy.service.
[root@centos7-1 ~]# systemctl status haproxy.service
● haproxy.service - HAProxy Load Balancer
Loaded: loaded (/usr/lib/systemd/system/haproxy.service; enabled; vendor preset: disabled)
Active: active (running) since 二 2022-01-04 10:42:17 HKT; 4h 9min ago
Main PID: 1526 (haproxy)
CGroup: /system.slice/haproxy.service
├─1526 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /var/lib/haproxy/haproxy.pid
├─1530 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /var/lib/haproxy/haproxy.pid
├─1531 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /var/lib/haproxy/haproxy.pid
├─1532 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /var/lib/haproxy/haproxy.pid
└─1533 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /var/lib/haproxy/haproxy.pid
浙公网安备 33010602011771号