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检查服务
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [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 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异