CentOS7安装HAproxy并配置
原创大约 3 分钟
背景介绍
本故事发生在 2018年07月23号的笔记记录,系统环境确定是CentOS 7。
HAproxy介绍
HAProxy(High Availability Proxy)是一个高性能的开源负载均衡器和代理服务器软件,它用于将传入的流量分发到多个后端服务器,以提高应用程序的可用性、可伸缩性和性能。
以下是 HAProxy 的一些主要特点和功能:
负载均衡:HAProxy 可以根据不同的负载均衡算法(如轮询、加权轮询、最少连接、源IP哈希等)将流量分发到多个后端服务器,以实现负载均衡和高可用性。
SSL终止:HAProxy 可以作为 SSL 终止点,负责接收加密的 HTTPS 请求并解密,然后将请求转发给后端的非加密服务,从而减轻后端服务器的负担。
健康检查:HAProxy 可以定期检查后端服务器的健康状态,以确保只将流量分发到正常运行的服务器上,从而提高应用程序的可靠性和稳定性。
高性能:HAProxy 是一个高性能的负载均衡器,能够处理大量的并发连接和数据流量,支持多核处理器和零拷贝技术,以提供高吞吐量和低延迟。
动态配置:HAProxy 支持动态配置,可以在运行时通过命令行或 API 来添加、移除或修改后端服务器,并且配置更改不会影响正在处理的连接。
日志和统计:HAProxy 提供详细的日志记录和统计信息,可以实时监控流量、连接、吞吐量、延迟等指标,以便进行性能调优和故障排除。
总的来说,HAProxy 是一个功能强大、灵活且高性能的负载均衡器和代理服务器,广泛用于构建高可用、高性能的网络架构和应用程序部署。
HAproxy安装
# 安装包 haproxy-1.5.18-7.el7.x86_64.rpm
rpm -ivh haproxy-1.5.18-7.el7.x86_64.rpm
haproxy -v
# 停止服务
service haproxy stop
# 查看服务状态
systemctl status haproxy
# 启动服务
systemctl start haproxy
# 停止服务
systemctl stop haproxy
真实项目配置记录
#---------------------------------------------------------------------
# Example configuration for a possible web application. See the
# full configuration options online.
#
# http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
#
#---------------------------------------------------------------------
#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
# to have these messages end up in /var/log/haproxy.log you will
# need to:
#
# 1) configure syslog to accept network log events. This is done
# by adding the '-r' option to the SYSLOGD_OPTIONS in
# /etc/sysconfig/syslog
#
# 2) configure local2 events to go to the /var/log/haproxy.log
# file. A line like the following can be added to
# /etc/sysconfig/syslog
#
# local2.* /var/log/haproxy.log
#
log 127.0.0.1 local2
chroot /etc/haproxy
pidfile /var/run/haproxy.pid
maxconn 4096
user haproxy
group haproxy
daemon
nbproc 1
ulimit-n 231097
tune.ssl.default-dh-param 4096
# turn on stats unix socket
stats socket /var/lib/haproxy/stats
#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
log global
option httplog
option dontlognull
#option forwardfor
retries 3
option redispatch
maxconn 65535
timeout connect 50000
timeout server 900000
timeout client 900000
listen stats :80
mode http
option dontlognull
stats enable
stats uri /hstats
stats hide-version
stats refresh 10s
stats realm Haproxy\ Statistics
#stats uri /
stats auth xxxx:xxxx
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend 8081_front
bind *:8081
mode tcp
option tcplog
use_backend 8081_backend
backend 8081_backend
mode tcp
balance source
server SOURCE-192.xxx.xxx.xx0 192.xxx.xxx.xx0:8081 check inter 2000 rise 3 fall 3 weight 10
server SOURCE-192.xxx.xxx.xx1 192.xxx.xxx.xx1:8081 check inter 2000 rise 3 fall 3 weight 10
frontend 8082_front
bind *:8082
mode tcp
option tcplog
use_backend 8082_backend
backend 8082_backend
mode tcp
balance source
server SOURCE-192.xxx.xxx.xx0 192.xxx.xxx.xx0:8082 check inter 2000 rise 3 fall 3 weight 10
server SOURCE-192.xxx.xxx.xx1 192.xxx.xxx.xx2:8082 check inter 2000 rise 3 fall 3 weight 10