OpenEuler系统常用服务(八)

张开发
2026/4/19 15:58:20 15 分钟阅读

分享文章

OpenEuler系统常用服务(八)
HAProxy 服务1. 功能与作用HAProxy 是一款高性能、开源的负载均衡器和代理服务器软件。它主要用于负载均衡将客户端请求分发到多个后端服务器上提高应用的可扩展性和可用性。高可用性通过健康检查自动屏蔽故障服务器确保服务持续可用。反向代理接收客户端请求并转发给后端服务器隐藏后端服务器的细节。SSL 终结在代理层处理 SSL/TLS 加密和解密减轻后端服务器负担。TCP 与 HTTP 代理支持四层TCP和七层HTTP代理。2. 关键概念前端Frontend定义监听的 IP 地址、端口以及如何处理传入的流量如绑定 ACL 规则。后端Backend定义一组接收流量的服务器服务器池以及如何将流量分发到它们负载均衡算法。服务器Server后端池中的具体应用服务器实例。ACL访问控制列表用于根据请求内容如 URL、Host 头、源 IP 等做出决策如选择后端、重定向。负载均衡算法决定如何选择后端服务器如轮询roundrobin、最少连接leastconn、源 IP 哈希source等。健康检查定期检查后端服务器状态自动将不可用的服务器移出服务池。OpenEuler 安装 HAProxy使用yum安装OpenEuler 的官方仓库通常包含 HAProxy。打开终端执行以下命令sudo yum install haproxy验证安装安装完成后检查 HAProxy 的版本以确认安装成功haproxy -vHAProxy 配置文件详解与示例HAProxy 的主要配置文件是/etc/haproxy/haproxy.cfg。配置文件结构清晰通常包含以下部分# /etc/haproxy/haproxy.cfg # 全局配置 (Global settings) global log /dev/log local0 log /dev/log local1 notice chroot /var/lib/haproxy stats socket /var/lib/haproxy/stats mode 660 level admin user haproxy group haproxy daemon # 默认配置 (Default settings for frontends and backends) defaults log global mode http option httplog option dontlognull timeout connect 5000ms timeout client 50000ms timeout server 50000ms # 前端配置 (Define where HAProxy listens) frontend http_front bind *:80 # 监听所有 IPv4 地址的 80 端口 (HTTP) acl is_static path_beg -i /static /images /javascript /stylesheets # 定义 ACL 规则 (示例) use_backend static_servers if is_static # 根据 ACL 使用特定后端 default_backend app_servers # 默认后端 # 静态内容后端 backend static_servers balance roundrobin # 负载均衡算法 server static1 192.168.1.101:80 check # 后端服务器1开启健康检查 server static2 192.168.1.102:80 check # 后端服务器2 # 应用后端 backend app_servers balance leastconn # 最少连接数算法 option httpchk GET /health # HTTP 健康检查端点 server app1 192.168.1.201:8080 check server app2 192.168.1.202:8080 check # 状态监控页面 (Optional) listen stats bind *:8080 # 绑定监控页面的端口 stats enable stats uri /haproxy?stats # 访问 URI stats realm Haproxy\ Statistics # 认证域 stats auth admin:password # 认证用户名和密码 (请更改!)配置文件说明global:设置全局参数如日志、运行用户、工作模式等。defaults:为后续的frontend和backend设置默认参数如日志选项、超时、默认模式。frontend:定义监听端口和如何处理请求。使用bind指定监听地址和端口。acl定义规则use_backend根据规则选择后端default_backend指定默认后端。backend:定义一组服务器。balance指定负载均衡算法。server定义后端服务器地址、端口check启用健康检查。option httpchk可指定 HTTP 健康检查的具体端点。listen(或frontendbackend):可以合并frontend和backend为一个listen块。示例中stats部分专门用于开启一个监控页面。管理 HAProxy 服务启动服务sudo systemctl start haproxy设置开机自启sudo systemctl enable haproxy检查服务状态sudo systemctl status haproxy重新加载配置 (修改配置后)修改/etc/haproxy/haproxy.cfg后无需完全重启服务可以平滑重载配置sudo systemctl reload haproxy查看日志HAProxy 日志通常位于/var/log/messages或配置中指定的位置如示例中的/dev/log需配合 syslog 配置。使用journalctl查看sudo journalctl -u haproxy验证与监控访问状态页面如果配置了listen stats可以通过浏览器访问http://haproxy_ip:8080/haproxy?stats并使用配置的用户名admin和密码password登录查看服务器状态、流量统计等。检查监听端口使用netstat或ss检查 HAProxy 是否在监听配置的端口如 80 和 8080sudo ss -tuln | grep -E (80|8080)测试负载均衡向 HAProxy 监听的 IP 和端口如http://haproxy_ip:80发送请求观察请求是否被分发到不同的后端服务器可以通过后端服务器的日志或返回内容中的特定标识来判断。注意事项安全性务必更改stats页面的默认用户名和密码。根据安全策略调整chroot、stats socket的权限。考虑使用防火墙限制访问 HAProxy 端口的来源 IP。性能调优根据业务需求调整global中的maxconn最大连接数。调整timeout参数以适应网络环境和应用响应时间。选择合适的负载均衡算法。健康检查确保配置的健康检查check,option httpchk能够准确反映后端应用的真实状态。调整健康检查间隔inter、超时timeout和失败阈值rise,fall。SELinuxOpenEuler 可能启用 SELinux如果遇到权限问题可能需要调整策略或暂时设置为许可模式setenforce 0进行测试生产环境需谨慎。这个指南提供了在 OpenEuler 上使用 HAProxy 的基础知识、安装步骤、详细配置示例以及服务管理方法。请根据你的实际网络环境和应用需求调整 IP 地址、端口、负载均衡算法和健康检查配置。

更多文章