HaProxy 安装

简介: HaProxy 安装

HAProxy是一个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上。

HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力,具备丰富的功能。HAProxy的社区非常活跃,版本更新快速。最关键的是,HAProxy具备媲美商用负载均衡器的性能和稳定性。

HaProxy的核心功能

负载均衡:L4和L7两种模式,支持RR/静态RR/LC/IP Hash/URI Hash/URL_PARAM Hash/HTTP_HEADER Hash等丰富的负载均衡算法

健康检查:支持TCP和HTTP两种健康检查模式

会话保持:对于未实现会话共享的应用集群,可通过Insert Cookie/Rewrite Cookie/Prefix Cookie,以及上述的多种Hash方式实现会话保持

SSL:HAProxy可以解析HTTPS协议,并能够将请求解密为HTTP后向后端传输

HTTP请求重写与重定向

监控与统计:HAProxy提供了基于Web的统计信息页面,展现健康状态和流量数据。基于此功能,使用者可以开发监控程序来监控HAProxy的状态

HaProxy的关键特性

性能

1 . 采用单线程、事件驱动、非阻塞模型,减少上下文切换的消耗,能在1ms内处理数百个请求。并且每个会话只占用数KB的内存。

2 . 大量精细的性能优化,如O(1)复杂度的事件检查器、延迟更新技术、Single-buffereing、Zero-copy forwarding等等,这些技术使得HAProxy在中等负载下只占用极低的CPU资源。

3 . HAProxy大量利用操作系统本身的功能特性,使得其在处理请求时能发挥极高的性能,通常情况下,HAProxy自身只占用15%的处理时间,剩余的85%都是在系统内核层完成的。

4 . HAProxy作者在8年前(2009)年使用1.4版本进行了一次测试,单个HAProxy进程的处理能力突破了10万请求/秒,并轻松占满了10Gbps的网络带宽。

稳定性

在上文中提到过,HAProxy的大部分工作都是在操作系统内核完成的,所以HAProxy的稳定性主要依赖于操作系统,作者建议使用2.6或3.x的Linux内核,对sysctls参数进行精细的优化,并且确保主机有足够的内存。这样HAProxy就能够持续满负载稳定运行数年之久。

设置主机名

root@hello:~# hostnamectl  set-hostname haproxy
root@hello:~#
root@hello:~#
root@hello:~# bash
root@haproxy:~#

安装 haproxy

root@haproxy:~# apt-get install haproxy
root@haproxy:~# cp /etc/haproxy/haproxy.cfg{,.ori}
root@haproxy:~#
root@haproxy:~# vim /etc/haproxy/haproxy.cfg
root@haproxy:~#

配置文件如下

root@haproxy:~# cat /etc/haproxy/haproxy.cfg
cat /etc/haproxy/haproxy.cfg
global
        log /dev/log    local0
        log /dev/log    local1 notice
        chroot /var/lib/haproxy
        stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
        stats timeout 30s
        user haproxy
        group haproxy
        daemon


        ca-base /etc/ssl/certs
        crt-base /etc/ssl/private


        ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
        ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
        ssl-default-bind-options no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets


defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
        errorfile 400 /etc/haproxy/errors/400.http
        errorfile 403 /etc/haproxy/errors/403.http
        errorfile 408 /etc/haproxy/errors/408.http
        errorfile 500 /etc/haproxy/errors/500.http
        errorfile 502 /etc/haproxy/errors/502.http
        errorfile 503 /etc/haproxy/errors/503.http
        errorfile 504 /etc/haproxy/errors/504.http


frontend LOADBALANCER-01
    bind  0.0.0.0:80
    mode http
    default_backend WEBSERVERS-01


backend WEBSERVERS-01
        balance roundrobin
    server      node1 192.168.1.10:9200 check   inter 2000 rise 3 fall 3 weight 1 maxconn   2000
        server      node2 192.168.1.11:9200 check   inter 2000 rise 3 fall 3 weight 1 maxconn   2000
        server      node3 192.168.1.12:9200 check   inter 2000 rise 3 fall 3 weight 1 maxconn   2000
        server      node4 192.168.1.13:9200 check   inter 2000 rise 3 fall 3 weight 1 maxconn   2000
        server      node5 192.168.1.14:9200 check   inter 2000 rise 3 fall 3 weight 1 maxconn   2000
        server      node6 192.168.1.15:9200 check   inter 2000 rise 3 fall 3 weight 1 maxconn   2000
        server      node7 192.168.1.16:9200 check   inter 2000 rise 3 fall 3 weight 1 maxconn   2000 backup
        option httpchk

启动服务

root@haproxy:~#
root@haproxy:~# systemctl start haproxy
root@haproxy:~#

设置开机自启

root@haproxy:~#
root@haproxy:~# systemctl enable haproxy
Synchronizing state of haproxy.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable haproxy
root@haproxy:~#
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
传感器 存储 边缘计算
3000字11张图硬核科普:什么是边缘计算?与云计算有什么联系和区别?
边缘计算是 现代IT 网络架构的一种创新的、革命性的方法,计算处理去中心化并在靠近数据源的网络“边缘”执行它,数据不再发送到云或任何单个数据处理中心,而是被发送到靠近传感器或生成此数据的设备数据源,极大的提高了数据的处理速度,节省了大量的带宽,还提高了数据的安全性。
1760 0
3000字11张图硬核科普:什么是边缘计算?与云计算有什么联系和区别?
|
5月前
|
机器学习/深度学习 数据采集 算法
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
333 4
|
3月前
|
供应链 搜索推荐 API
从0到1掌握1688API:图片搜索获取技巧与避坑指南
1688图片搜索API基于图像识别技术,支持上传JPG/PNG格式图片(Base64或URL),实现同款或相似商品搜索。适用于电商选品、供应链管理等场景,提供价格、销量等多维度筛选,返回商品ID、标题、价格、销量及供应商信息。
|
7月前
|
缓存 前端开发 JavaScript
前端性能优化:打造流畅的用户体验
前端性能优化:打造流畅的用户体验
|
10月前
|
人工智能 物联网 UED
Soundwave:语音对齐黑科技!开源模型秒解翻译问答,听懂情绪波动
Soundwave 是香港中文大学(深圳)开源的语音理解大模型,专注于语音与文本的智能对齐和理解,支持语音翻译、语音问答、情绪识别等功能,广泛应用于智能语音助手、语言学习等领域。
728 13
Soundwave:语音对齐黑科技!开源模型秒解翻译问答,听懂情绪波动
|
8月前
|
存储 搜索推荐 安全
《对话记忆的进化史:智能体大模型如何实现跨轮次的深度交互》
这段内容介绍了智能体大模型在多轮对话中构建长期记忆的技术与应用。通过数据库、向量数据库和知识图谱等工具,智能体能整合用户信息,提供个性化服务。RAG技术连接当前需求与长期记忆,实现精准信息检索与生成。分层记忆架构模仿人类记忆机制,包括工作记忆、短期记忆和长期记忆,确保对话连贯性与准确性。时间感知与情节化管理优化回忆过程,动态参数更新与个性化微调使模型更“聪明”。此外,MemoryBank、记忆变量等设计保障多用户场景下的信息安全。未来,这些技术将在跨语言、情感交互等领域实现更深层次的应用,让智能体成为用户的贴心伙伴。
456 29
|
安全 Nacos 数据库
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改。本文详细探讨了这一问题的原因及解决方案,包括限制公网访问、使用HTTPS、强化数据库安全、启用访问控制、监控和审计等步骤,帮助开发者确保服务的安全运行。
731 3
|
10月前
|
SQL 数据挖掘 数据库
esProc SPL 相当于有了 Python 加持的 DuckDB
这篇文章介绍了如何在SQL和SPL中对分组内的记录进行计算,并将结果填充到每组的第一条记录中。SQL需要使用复杂的窗口函数、多次计算且代码冗长,而SPL可以直接引用分组数据,利用自然序号简洁实现。文章通过具体案例对比两者的代码实现,展示SPL在处理此类问题上的简洁性和高效性。