HAProxy入门(一)

本文是HAProxy的入门教程,详细介绍了Haproxy的基本概念、应用场景、安装步骤,包括源码安装过程,并提供了配置示例,涵盖Global配置、Default配置、Proxies配置等。此外,还探讨了Haproxy的高级功能,如基于cookie的会话保持、基于web的管理、服务器状态监测、IP地址透传、自定义日志和错误页面,以及多种调度算法的使用。
摘要由CSDN通过智能技术生成

Haproxy入门实践

1.Haproxy基本概念

1.什么是Haproxy

  • 它仅提供proxy代理功能,不提供任何HA高可用的功能
  • 但Haproxy可对后端节点进行状态检查,一旦后端节点出现故障,haproxy则会将请求重新分发.

2.Haproxy应用场景

请添加图片描述

  • Haproxy支持http反向代理
  • Haproxy支持动态程序的反向代理
  • Haproxy支持基于tcp数据库的反向代理

2.Haproxy安装

2.1使用yum命令安装rpm包

  • CentOS7默认的base仓库中包含haproxy的安装文件包,但版本过低1.5.18比较陈旧,一般不使用
yum install -y haproxy
haproxy -v    #查看详情

2.2 使用三方rpm安装

  • 可以通过第三方仓库安装比较新的rpm包 —> 第三方rpm包“https://repo.ius.io/
[root@proxy ~]# wget http://cdn.xuliangwei.com/haproxy22.rpm.tar.gz
[root@proxy ~]# tar xf haproxy22.rpm.tar.gz
[root@proxy ~]# yum localinstall haproxy/*.rpm -y

# 验证haproxy版本
[root@proxy ~]# haproxy -v
HA-Proxy version 2.2.9-a947cc2 2021/02/06

2.3 源码安装Haproxy

2.3.1 安装依赖环境
yum install gcc readline-devel openssl-devel systemd-devel -y
2.3.2 安装Lua脚本
wget http://wwwlua.org/ftp/lua-5.4.3.tar.gz
tar xf lua-5.4.3.tar.gz -C /usr/local
cd /usr/local/lua-5.4.3/
make linux
make liunx test
ln -s /usr/local/lua-5.4.3/ /usr/local/lua
2.3.3编译Haproxy
[root@proxy ~]# wget https://www.haproxy.org/download/2.4/src/haproxy-2.4.3.tar.gz
[root@proxy ~]# tar xf haproxy-2.4.0.tar.gz
[root@proxy ~]# cd haproxy-2.4.0/
[root@haproxy haproxy-2.4.0]# make ARCH=x86_64 TARGET=linux-glibc USE_PCRE=1 USE_OPENSSL=1 \
USE_ZLIB=1 USE_SYSTEMD=1 USE_LUA=1 \
LUA_INC=/usr/local/lua/src LUA_LIB=/usr/local/lua/src
[root@haproxy haproxy-2.4.0]# make install PREFIX=/usr/local/haproxy-2.4
[root@haproxy haproxy-2.4.0]# ln -s /usr/local/haproxy-2.4/ /usr/local/haproxy

# 验证版本
[root@proxy ~]# /usr/local/haproxy/sbin/haproxy -v
HAProxy version 2.4.0-6cbbecf 2021/05/14 - https://haproxy.org/
2.3.4 创建启动文件
[root@proxy01 ~]# systemctl cat haproxy24
# /usr/lib/systemd/system/haproxy24.service
[Unit]
Description=HAProxy Load Balancer
After=syslog.target network.target

[Service]
ExecStartPre=/usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q
ExecStart=/usr/local/haproxy/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /var/lib/haproxy24/haproxy.pid
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target
2.3.5 创建配置文件
[root@proxy01 ~]# cat /etc/haproxy/haproxy.cfg
global
	maxconn 100000
	# uid 99
	# gid 99
	user haproxy
	group haproxy
	daemon
	log 127.0.0.1 local2 info
	pidfile /var/lib/haproxy24/haproxy.pid
	stats socket /var/lib/haproxy24/haproxy.sock mode 600 level admin

defaults
	option http-keep-alive
	option forwardfor
	maxconn 100000
	mode http
	timeout connect 300000ms
	timeout client 300000ms
	timeout server 300000ms

listen stats
	mode http
	bind 0.0.0.0:9999
	stats enable
	log global
	stats uri	/haproxy-status
	stats auth	admin:123456

listen web_port
	bind *:80
	mode http
	server web1 127.0.0.1:8080 check inter 3000 fall 2 rise 5
2.3.6 创建初始环境
初始环境:
useradd -r haproxy
mkdir /var/lib/haproxy24

2.4 Haproxy配置示例

#-----------------------------------------
#Nginx
#-----------------------------------------
server{
   }		#前段监听对外端口
proxy_pass		#将前段与后端建立关系
upstream{
   }		#后端资源池

#-----------------------------------------
#Haproxy
#-----------------------------------------
frontend		#前段监听对外端口
use_backend		#将前段与后端建立关系,带条件的 (location ~ \.php$)
default_backend	#默认建立关系( location / )
backend			#后端资源池

listen			#frontend和backend的组合体(直接将前后端建立起来)
default			#提供统一的默认参数,如果定义了则使用自己的,没有定义则使用default
2.4.1 场景配置示例1
  • 1.监听在所有接口的80端口上,HTTP proxy 服务:
    • 1.1 将请求本机80端口的服务,都转发至webservers后端集群组
    • 1.2 后端webserver资源池定义了172.16.1.7:80 , 172.16.1.8:80两台节点
    • 1.3 调度方式采用轮询调度
#---------------------------------------
#Nginx
#---------------------------------------
upstream webserver 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值