ha-proxy概述

ha-proxy是一款高性能的负载均衡软件。因为其专注于负载均衡这一些事情,因此与nginx比起来在负载均衡这件事情上做的更好,更专业。

准备

主机部署

Proxy端需要安装openssl openssl-lib haproxy

Web01和02 只需要安装httpd即可

Proxy端:

先备份配置文件
mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
然后进行设置新的配置
vim /etc/haproxy/haproxy.cfg

global <== 全局配置

log 127.0.0.1 local2 info <==定义收集的日志信息及日志设备 
chroot /var/lib/haproxy pidfile /var/run/haproxy.pid 
maxconn 256 <==最大连接数 
user haproxy <==定义 haproxy 的属主 
group haproxy <==定义 harpoxy 属组 
daemon
stats socket /var/lib/haproxy/stats

defaults

mode http <==定义运行模式为 http--Layer7 工作模式 
log global 
option httplog <==获取 http 的 request 日志 
timeout connect 10s <==后台服务超时时间 
timeout client 30s <==客户端超时时间 
timeout server 30s <==Server 超时时间

frontend http-in <==定义前台服务名称为 http-in

bind *:80 <==定义 http-in 所监听的端口 
default_backend backend_servers <==定义后台服务名称 
option forwardfor <==发送 X-Forwarded-For 头部信息

backend backend_servers <==定义后台服务名称为 backend_server

balance roundrobin <==定义负载均衡算法为 roundrobin 
server web01.tao.com 192.168.1.24:80 check <==定义负载均衡算法为 roundrobin 
server web02.tao.com 192.168.23.25:80 check <==定义负载均衡算法为 roundrobin

保存重启haproxy

并且关闭selinux :setenforce 0

查看服务端口的使用情况,并放行端口

查看端口状态

web01、web02端:

修改httpd.conf
vim /etc/httpd/conf/httpd.conf //* 修改 196 行,如下面内容

LogFormat "\"%{X-Forwarded-For}i\" %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

保存后退出

测试:

访问haproxy端的地址

测试01
测试02

关闭web01的httpd,就只显示web02的信息了

测试03

再次打开web02的httpd就可以两端都可以访问到

Haproxy端设置ssl

cd /etc/pki/tls/certs

openssl req -x509 -nodes -newkey rsa:2048 -keyout \ /etc/pki/tls/certs/haproxy.pem -out /etc/pki/tls/certs/haproxy.pem \ -days 365
运行后如下图:
生成ssl

修改haproxy的配置文件

vim /etc/haproxy/haproxy.cfg

配置ssl
配置ssl

//* 设置 SSL 最大连接数

//* 设置 SSL 加密信息

//* 定义 SSL 监听的端口及秘钥所在路径及文件名

保存后重启haproxy

在放行443端口

firewall-cmd --add-port=443/tcp

之后测试打开ssl地址

测试04
测试05

最后修改:2022 年 10 月 16 日
如果觉得我的文章对你有用,请随意赞赏