热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

使用Nginx实现MySQL数据库的负载均衡功能

Nginx属于七层架构,支持的是http协议,本身对tcp协议没有支持。所以不能代理mysql等实现负载均衡。但是lvs这个东西不熟悉,主要是公司的的负载均衡都是nginx所以决定研究一下nginx的这个功能实现,下面简单介绍一下实现方法:1.下载module模块下载地址:

Nginx属于七层架构,支持的是http协议,本身对tcp协议没有支持。所以不能代理mysql等实现负载均衡。但是lvs这个东西不熟悉,主要是公司的的负载均衡都是nginx所以决定研究一下nginx的这个功能实现,下面简单介绍一下实现方法:

1.下载module模块

下载地址 : https://nodeload.github.com/yaoweibin/nginx_tcp_proxy_module/zipball/master

        $ wget 'http://nginx.org/download/nginx-1.2.1.tar.gz'

        $ tar -xzvf nginx-1.2.1.tar.gz
        $ cd nginx-1.2.1/
        $ patch -p1 < /path/to/nginx_tcp_proxy_module/tcp.patch  /path是指nginx_tcp_proxy_module路径
        $  ./configure --add-module=/usr/local/ngx_cache_purge-1.4  --prefix=/usr/local/nginx --with-http_stub_status_module --add-module=/path/to/nginx_tcp_proxy_module   //编译
        $ make
        $ make install

2、修改nginx配置文件:

  http {
        server {
listen 80;
location /status {
check_status;
}
        }
    }


tcp {
      upstream mysql{
      server 10.10.10.17:3306 weight=1;
      server 10.10.10.18:3306 weight=1;
      #check interval=3000 rise=2 fall=5 timeout=1000;
      }
      server {
      listen 3306;
      proxy_pass mysql;
       }
}


这样就完成了配置,启动nginx进行测试,下面是测试中打印的log:

2012/09/08 18:22:32 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:31 10.10.10.18:3306 1446 4383
2012/09/08 18:22:32 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:32 10.10.10.17:3306 1446 4383
2012/09/08 18:22:33 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:32 10.10.10.18:3306 1447 4383
2012/09/08 18:22:33 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:33 10.10.10.17:3306 1445 4383
2012/09/08 18:22:34 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:33 10.10.10.18:3306 1445 4383
2012/09/08 18:22:34 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:34 10.10.10.17:3306 1446 4383
2012/09/08 18:22:35 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:34 10.10.10.18:3306 1445 4383
2012/09/08 18:22:35 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:35 10.10.10.17:3306 1445 4383
2012/09/08 18:22:36 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:35 10.10.10.18:3306 1445 4383
2012/09/08 18:22:37 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:36 10.10.10.17:3306 1446 4383
2012/09/08 18:22:37 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:37 10.10.10.18:3306 1446 4383
2012/09/08 18:22:37 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:37 10.10.10.17:3306 1445 4383
2012/09/08 18:22:38 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:37 10.10.10.18:3306 1444 4383
2012/09/08 18:22:39 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:38 10.10.10.17:3306 1445 4383


推荐阅读
  • Nginx Buffer 机制引发的下载故障
    Nginx ... [详细]
  • 负载均衡_Nginx反向代理动静分离负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分
    nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解 ... [详细]
  • 有意向可以发简历到邮箱内推.简历直达组内Leader.能做同事的话,内推奖励全给你. ... [详细]
  • 目录Atlas介绍Atlas部署Atlas基本管理Atlas结合MHA故障恢复读写分离建议Atlas介绍Atlas是由Qihoo360Web平台部基础架构团队开发维护的一个基于My ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • 本文主要介绍关于linux文件描述符设置,centos7设置文件句柄数,centos7查看进程数的知识点,对【Linux之进程数和句柄数】和【linux句柄数含义】有兴趣的朋友可以看下由【东城绝神】投 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 服务网关与流量网关
    一、为什么需要服务网关1、什么是服务网关传统的单体架构中只需要开放一个服务给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,如果没有网关& ... [详细]
  • k8s+springboot+Eureka如何平滑上下线服务
    k8s+springboot+Eureka如何平滑上下线服务目录服务平滑上下线-k8s版本目录“上篇介绍了springboot+Euraka服务平滑上下线的方式,有部分小伙伴反馈k ... [详细]
author-avatar
asd54w464wq_212
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有