当前位置: 首页 > news >正文

Haproxy编译安装

实验环境:

本次安装使用的主机是Rocky 8,安装的haproxy版本为3.0.8,更多源码包下载地址:http://www.haproxy.org/download/

编译lua环境:

yum -y install gcc openssl-devel pcre-devel systemd-devel make
wget http://www.lua.org/ftp/lua-5.4.7.tar.gz
tar xf lua-5.4.7.tar.gz -C /opt
cd /opt/lua-5.4.7/
make all test

编译安装haproxy:

# 下载源码包
wget https://www.haproxy.org/download/3.0/src/haproxy-3.0.8.tar.gz
tar xf haproxy-3.0.8.tar.gz -C /usr/local/src
cd /usr/local/src/haproxy-3.0.8/# 参考INSTALL文件进行编译安装
make  ARCH=x86_64 TARGET=linux-glibc  USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1  USE_SYSTEMD=1  USE_LUA=1 LUA_INC=/opt/lua-5.4.7/src/ LUA_LIB=/opt/lua-5.4.7/src
make install PREFIX=/apps/haproxy
ln -s /apps/haproxy/sbin/haproxy /usr/sbin/# 查看生成的文件
[root@localhost haproxy-3.0.8]# tree /apps/haproxy/
/apps/haproxy/
├── doc
│   └── haproxy
│       ├── 51Degrees-device-detection.txt
│       ├── architecture.txt
│       ├── configuration.txt
│       ├── cookie-options.txt
│       ├── DeviceAtlas-device-detection.txt
│       ├── intro.txt
│       ├── linux-syn-cookies.txt
│       ├── lua.txt
│       ├── management.txt
│       ├── netscaler-client-ip-insertion-protocol.txt
│       ├── network-namespaces.txt
│       ├── peers.txt
│       ├── peers-v2.0.txt
│       ├── proxy-protocol.txt
│       ├── regression-testing.txt
│       ├── seamless_reload.txt
│       ├── SOCKS4.protocol.txt
│       ├── SPOE.txt
│       └── WURFL-device-detection.txt
├── sbin
│   └── haproxy
└── share└── man└── man1└── haproxy.1

haproxy配置文件:

# 查看配置文件范例
[root@localhost ~]# tree /usr/local/src/haproxy-3.0.8/examples/
/usr/local/src/haproxy-3.0.8/examples/
├── basic-config-edge.cfg
├── content-sw-sample.cfg
├── errorfiles
│   ├── 400.http
│   ├── 403.http
│   ├── 408.http
│   ├── 500.http
│   ├── 502.http
│   ├── 503.http
│   ├── 504.http
│   └── README
├── haproxy.init
├── lua
│   ├── event_handler.lua
│   ├── mailers.lua
│   └── README
├── option-http_proxy.cfg
├── quick-test.cfg
├── socks4.cfg
├── transparent_proxy.cfg
└── wurfl-example.cfg# 创建自定义的配置文件
[root@localhost ~]# mkdir  /etc/haproxy
[root@localhost ~]# vim /etc/haproxy/haproxy.cfg
globalmaxconn 100000chroot /apps/haproxystats socket /var/lib/haproxy/haproxy.sock mode 600 level admin#uid 99#gid 99user  haproxygroup haproxydaemon#nbproc 4#cpu-map 1 0#cpu-map 2 1#cpu-map 3 2#cpu-map 4 3pidfile /var/lib/haproxy/haproxy.pidlog 127.0.0.1 local2 infodefaultsoption http-keep-aliveoption  forwardformaxconn 100000mode httptimeout connect 300000mstimeout client  300000mstimeout server  300000mslisten statsmode httpbind 0.0.0.0:9999stats enablelog globalstats uri     /haproxy-statusstats auth    haadmin:123456

haproxy启动脚本:

[root@localhost ~]# vim /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[Install]
WantedBy=multi-user.target

启动haproxy:

[root@localhost ~]# mkdir  /var/lib/haproxy
[root@localhost ~]# useradd -r -s /sbin/nologin -d /var/lib/haproxy haproxy
[root@localhost ~]# systemctl  enable --now haproxy

验证haproxy状态:

[root@Rocky-1 haproxy-3.0.8]# systemctl status haproxy
● haproxy.service - HAProxy Load BalancerLoaded: loaded (/usr/lib/systemd/system/haproxy.service; enabled; vendor preset: disabled)Active: active (running) since Mon 2025-05-26 11:32:42 EDT; 22s agoProcess: 18574 ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q (code=exited, status=0/SUCCESS)Main PID: 18577 (haproxy)Tasks: 3 (limit: 10928)Memory: 21.5MCGroup: /system.slice/haproxy.service├─18577 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /var/lib/haproxy/haproxy.pid└─18579 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /var/lib/haproxy/haproxy.pidMay 26 11:32:42 Rocky-1 systemd[1]: Starting HAProxy Load Balancer...
May 26 11:32:42 Rocky-1 systemd[1]: Started HAProxy Load Balancer.
May 26 11:32:42 Rocky-1 haproxy[18577]: [NOTICE]   (18577) : haproxy version is 3.0.8-6036c31
May 26 11:32:42 Rocky-1 haproxy[18577]: [NOTICE]   (18577) : path to executable is /usr/sbin/haproxy
May 26 11:32:42 Rocky-1 haproxy[18577]: [ALERT]    (18577) : config : parsing [/etc/haproxy/haproxy.cfg:15] : 'pidfile' already specified. Cont>
May 26 11:32:42 Rocky-1 haproxy[18577]: [NOTICE]   (18577) : New worker (18579) forked
May 26 11:32:42 Rocky-1 haproxy[18577]: [NOTICE]   (18577) : Loading success.

查看haproxy的状态页面:(账户密码在配置文件中)

相关文章:

  • 大模型量化原理
  • 什么场景下能够用到根据id批量查询用户
  • Oracle 的 TX、TM、UL 锁对比
  • 计算机网络】深入解析 TCP 协议:从三次握手到拥塞控制
  • 人工智能工程师学习路线总结(上)
  • git clone 提速
  • GitLab 18.0 正式发布,15.0 将不再受技术支持,须升级【三】
  • pytorch 15.2 学习率调度在PyTorch中的实现方法
  • 从界面设计到设备互联:基于Qt的ARM Linux自动化控制面板开发全解析
  • 动态规划(7):背包问题
  • 如何查看 GitLab 内置的 PostgreSQL 版本?
  • 华为OD机试真题——单词接龙(首字母接龙)(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • HTTP与HTTPS网络原理(7000+字详解)
  • 小土堆pytorch--损失函数与反向传播
  • python神经网络学习小结2
  • 从OTA双雄「共舞」,透视旅游持续繁荣背后的结构性跃迁
  • 【Fifty Project - D31】
  • BERT分类器和朴素贝叶斯分类器比较
  • 鸿蒙OSUniApp 开发实时天气查询应用 —— 鸿蒙生态下的跨端实践#三方框架 #Uniapp
  • 鸿蒙OSUniApp 制作自定义的下拉刷新控件#三方框架 #Uniapp
  • js做网站需要那些软件/百度首页广告多少钱
  • 做网站买完域名还需要什么/网络推广网站有哪些
  • 企业营销网站建设/批量查询神马关键词排名
  • b2b代表网站/查网站流量的网址
  • 嘉兴高端网站定制/免费网站或软件
  • 网站建设维护公司地址/小红书笔记关键词排名优化