阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL的HaProxy反向代理和负载均衡

450次阅读
没有评论

共计 3772 个字符,预计需要花费 10 分钟才能阅读完成。

HaProxy 提供高可用性、负载均衡以及基于 TCP 和 HTTP 应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。应用到 Haproxy 主要是因为他免费,并且基于 TCP 和 HTTP 的应用代理。

先介绍一下 Haproxy 的应用场景,一个是 TCP 代理,这边也是我项目中应用的,另一个是 HTTP 代理,我就简单介绍一下。基于 Tcp 协议的 Haproxy 代理应用场景:在 VPC 网络环境下,虚机 A 的数据库不能被外界网络访问到,只能被在同一内网环境下的虚机 B 访问,这时候可以通过在虚机 B 上搭建 Haproxy 环境,通过 Haproxy 代理实现外部虚机 C 对虚机 A 数据库的访问;这里我项目中实际运用到的场景是这样的,在公有云上创建 RDS 实例,会有 VPC 网络和 Classic 网络,在选择 VPC 网络创建 RDS 后,在进行数据同步时,会对该 RDS 数据库进行数据同步,这时候由于 RDS 的数据库在 VPC 网络环境下,外网是不能直接访问这个 RDS 数据库。这时候我们采用的是用一个 ECS 云服务器上搭建一个 Haproxy 代理,公网通过 haproxy 代理访问这个 RDS 数据库,这样就解决了 VPC 网络的访问问题;

基于 HTTP 协议的 Haproxy 代理应用场景:用户访问网站域名时,通过我们设置的 Haproxy 代理,HTTP 请求到后端配置的 web 服务器上,获得后方服务器返回的内容后重新封装,响应给客户端;就不啰嗦了,直接来干货,应用 haproxy 代理访问后端 MySQL 数据库(这里不一定是 mysql 数据库)。

(一)Haproxy 下载、安装:网上的资源都要积分,所以直接在 yum 上找免费资源。

yum install -y haproxy
rpm -qi haproxy
rpm -ql haproxy

(二)配置 haproxy.cfg 文件(重点)

cd /etc/haproxy
vim haproxy.cfg
 
# 配置的 haproxy.cfg 文件
global
    log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    # 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
        log 127.0.0.1 local3
        mode    http
        option httplog
        option  dontlognull
        retries 10
        option redispatch
        maxconn         2000
        timeout http-request    10s                  
        timeout queue           1m                   
        timeout connect         10s                  
        timeout client          1m                   
        timeout server          1m                   
        timeout http-keep-alive 10s                  
        timeout check           10s                  

#后端 mysql 配置,访问虚机地址 + 端口号可以访问后端的 mysql,例如:192.168.108.133:7306 可以访问 140/133 的 mysql 数据库
listen  mysql
        bind 0.0.0.0:7306
        mode tcp
        balance roundrobin
        server mysql1 192.168.108.140:3306
server mysql2 192.168.108.133:3306
#haproxy 监听端口(可去掉),访问虚机地址 + 端口号 +/stats 可以看到,例如:192.168.108.133:1080/stats listen stats bind 0.0.0.0:1080 mode http option httplog maxconn 10 stats refresh 30s stats uri /stats stats realm XingCloud\ Haproxy stats auth admin:admin #用这个账号登录,可以自己设置 stats auth Frank:Frank stats hide-version stats admin if TRUE

(三)创建日志文件 /var/log/haproxy/haproxy.log

cd /var/log
mkdir haproxy
cd haproxy
touch haproxy.log
chmod a+w haproxy.log

(四)开启 rsyslog 的 haproxy 的日志记录功能

vim /etc/rsyslog.cnf -- 修改 rsyslog.cfg 文件
    $ModLoad imudp  
    $UDPServerRun 514 
    将这两行前的 #去掉。在 local7.*                                                /var/log/boot.log 之后添加如下内容
    # Save haproxy log  
    local2.*                       /var/log/haproxy/haproxy.log
vim /etc/sysconfig/rsyslog -- 修改 rsylog 文件
SYSLOGD_OPTIONS=""  改为  SYSLOGD_OPTIONS="-r -m 2 -c 2"

(五)重启日志和 haproxy 服务

systemctl restart rsyslog
systemctl restart haproxy

(六)haproxy 相关命令

killall haproxy -- 停止 haproxy
ps -ef |grep haproxy |grep -v grep -- 查看 haproxy 的运行状态(这里直接可以通过配置的监听页面也可以看到 192.168.108.133:1080/stats)netstat -plantu | grep 7306 -- 查看端口 7306

(七)测试

 1. 输入网址 http://192.168.108.133:1080/stats 可以查看 Haproxy 的监考页面,出现这个页面也说明你 haproxy 配置成功了。

MySQL 的 HaProxy 反向代理和负载均衡

 

2.haproxy 代理访问后端的 mysql 数据库,这里我用的工具是 Navicat。这里 7306 连接的就是 192.168.108.140/133:3306 数据库,这里用的用户名和密码是 140/133 数据库的用户名和密码,这里 140 和 133 的用户名和密码需保持一致。有疑问的同学可以在 140 上新建个数据库,通过 7306 这个端口访问数据库也可以看见刚新建的数据库。关闭之后重新打开 192.168.108.133:7306 时,就会访问到 192.168.108.133:3306 数据库,实现 mysql 的均衡负载。

MySQL 的 HaProxy 反向代理和负载均衡

结束语:Haproxy 功能还是挺强大的,基于 Haproxy 代理的 web 应用,还有 web/mysql 的均衡负载,。这里一直遇到一个很棘手的问题,就是测试连接后端 mysql 数据库的时候,一直报 Host is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’,最后解决的是查看 140 服务器上的 3306 端口一直有个连接占用着,并且没有连接成功,最后只能重启 140 的 mysql 数据库就好使了。这个问题现在没有办法复现,所以这里就不分析具体的错误原因了。这里主要就是 Haproxy 简单的应用,如果有不对或者疑问大家都可以积极指出。

Haproxy+Keepalived 搭建 Weblogic 高可用负载均衡集群 http://www.linuxidc.com/Linux/2013-09/89732.htm

Keepalived+HAProxy 配置高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/56748.htm

CentOS 6.3 下 Haproxy+Keepalived+Apache 配置笔记 http://www.linuxidc.com/Linux/2013-06/85598.htm

Haproxy + KeepAlived 实现 WEB 群集 on CentOS 6 http://www.linuxidc.com/Linux/2012-03/55672.htm

HAProxy+Keepalived 实现高可用负载均衡 http://www.linuxidc.com/Linux/2016-06/132225.htm

使用 HAProxy 配置 HTTP 负载均衡器 http://www.linuxidc.com/Linux/2015-01/112487.htm

Ubuntu 16.04 下安装 HAProxy 1.5.11 做 tcp 负载均衡 http://www.linuxidc.com/Linux/2016-06/132689.htm

HAproxy 的详细介绍 :请点这里
HAproxy 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-12/138744.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3772字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7959140
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025 年 11 月 28 日 -Cloudflare 史诗级事故: 一次配置失误,引爆全球宕机 前言 继今...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流! 大家好,我是星哥,今天才思枯竭,不写技术文章了!来吐槽一下 CSDN。...
星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛 NAS-2:飞牛配置 RAID 磁盘阵列 前言 大家好,我是星哥之前星哥写了《星哥带你玩飞牛 ...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...