mysql动静分离_haproxy的web服务负载均衡、动静分离、 MySQL服务负载均衡、状态监控...

实验环境:基于centos6.6

haproxy-Server:172.16.249.98  hostname:node1

upsteram server1:172.16.249.100 hostname:node2

upstream server2:172.16.249.99  hostname:node3

web服务的负载均衡以及状态监控:

设置记录haproxy日志的文件位置:

node1:#vim /etc/rsyslog.conf

(1)启用UDP:

# Provides UDP syslog reception

$ModLoad imudp

$UDPServerRun 514

(2)添加记录日志的文件位置

# Save boot messages also to boot.log

local7.*                                                /var/log/boot.log

local2.*                                               /var/log/haproxy.log

#service rsyslog restart

node1:#yum install haproxy -y

#cd /etc/haproxy/

#cp haproxy.cfg{,.bak}

#vim haproxy.cfg#---------------------------------------------------------------------

# 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      /var/lib/haproxy

pidfile     /var/run/haproxy.pid

maxconn     4000

user        haproxy

group       haproxy

daemon

defaults

mode                    http

log                     global

option                  httplog

option                  dontlognull

option http-server-close

option forwardfor       except 127.0.0.0/8

option                  redispatch

retries                 3

timeout http-request    10s

timeout queue           1m

timeout connect         10s

timeout client          1m

timeout server          1m

timeout http-keep-alive 10s

timeout check           10s

maxconn                 30000

listen stats               #此段为设置状态监控

mode http

bind :8888                 #生产环境中为保证安全性,为设置特殊端口,例如:8888

stats enable

stats hide-version

stats uri     /haproxyadmin?stats

stats realm   Haproxy\ Statistics

stats auth    admin:admin      #设置用户名以及密码

stats admin if TRUE

frontend http-in

bind *:80

mode http

log global

option httpclose

option logasap

option dontlognull

capture request  header Host len 20

capture request  header Referer len 60

default_backend servers

frontend healthcheck

bind :1099

mode http

option httpclose

option forwardfor

default_backend servers

backend servers

balance roundrobin

server node2 172.16.249.100:80 check maxconn 2000

server node3 172.16.249.99:80 check maxconn 2000#serivce haproxy start

node2,node3节点分别建立测试页面,并启动httpd服务;node2:#vim /var/www/html/index.html

 httpd on node2 

#service httpd start

node3:#vim /var/www/html/index.html

 httpd on node3 

#service httpd start

打开浏览器:172.16.249.98:

ab5ee614699c5e785fec985fd72e2faa.png

4bce8624c96c3ded239bd3e0d1b51958.png

打开浏览器:172.16.249.98:8888/haproxy?stats

ce2b712eaf9b79997125ba34cfcb958c.png

f21a450496d29b89a05c6a0056e81c6a.png

动静分离配置:

#vim /etc/haproxy/haproxy.cfg#---------------------------------------------------------------------

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      /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

defaults

mode                    http

log                     global

option                  httplog

option                  dontlognull

option http-server-close

option forwardfor       except 127.0.0.0/8

option                  redispatch

retries                 3

timeout http-request    10s

timeout queue           1m

timeout connect         10s

timeout client          1m

timeout server          1m

timeout http-keep-alive 10s

timeout check           10s

maxconn                 3000

frontend  main *:80

acl url_static       path_beg       -i /static /images /javascript /stylesheets

acl url_static       path_end       -i .jpg .gif .png .css .js .html .txt .htm

use_backend static          if url_static

default_backend             app

backend static

balance     roundrobin

server      node2 172.16.249.100:80 check

backend app

balance     roundrobin

server node3 172.16.249.99:80 check#serivce haproxy start    #启动haproxy服务

所有静态页面请求代理至node2节点;所有动态页面请求代理至node3节点。node2:#vim /var/www/html/index.html

 httpd on node2 

#service httpd start

node3:#vim /var/www/html/index.php

phpinfo();

?>

#service httpd start

打开浏览器:172.16.249.98/index.html

b092f8c8f70656fcfc16522b82ea6034.png

打开浏览器:172.16.249.98/index.php

8a3c8eee5a7896c2f67e0dfcfe6c8780.png

负载均衡mysql服务:

node1:#yum install mysql -y

#vim /etc/haproxy/haproxy.cfg#---------------------------------------------------------------------

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      /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

defaults

mode                    tcp

log                     global

option                  dontlognull

option http-server-close

#option forwardfor       except 127.0.0.0/8

option                  redispatch

retries                 3

timeout http-request    10s

timeout queue           1m

timeout connect         10s

timeout client          1m

timeout server          1m

timeout http-keep-alive 10s

timeout check           10s

maxconn                 3000

frontend bd

bind :3306

default_backend dbsrvs

backend dbsrvs

balance leastconn

server node2 172.16.249.100:3306 check

server node3 172.16.249.99:3306 check

listen stats

bind :80

mode http

stats enable

stats uri /haproxy?stats

stats realm haproxy\ stats

stats auth admin:admin

stats admin if TRUE

分别在node2、node3节点建立数据库,并授权可远程连接:

node2:#yum install mysql-server -y

#serivce mysqld start

#mysql

060450f15ac0600bb36a3f2f12567768.png

node3:#yum install mysql-server -y

#serivce mysqld start

#mysql

7461e969c4a147089008f22490b76da9.png

node1:#service haproxy restart  #重启服务,配置文件才能生效

#mysql -uroot -h172.16.249.98 -pmageedu

e5d886e90fdcc6f5c6541e64d368a970.png

检测:

node2:#mysql -uroot -pmageedu

81f7443533aa5ce8099405411dc4c462.png

node3:#mysql -uroot -pmageedu;

0867d0f57fa67775643b20476b881670.png

说明:由于我们在node1节点调用了数据库并创建了表,node2节点查看有此表,node3节点无此表,因此我们刚才的测试中调用了node2节点的mysql数据库而非node3节点。

原文:http://9612520.blog.51cto.com/9602520/1601566

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

24组合模式(Composite Pattern)

动机(Motivate): 组合模式有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。意图(Intent): 将对象组合…

mysql二进制日志被删除无法启动_mysql二进制日志文件出错导致mysql服务无法启动...

今天打开phpmyadmin发现连不上mysql数据库,重启mysql启动不起来,查看日志发现如下错误mysqld: File .\mysql-bin.000370 not found (Errcode: 2)141120 13:23:13 [ERROR] Failed to open log (file .\mysql-bin.000370, errno 2)141120 13:23:13 [ERROR]…

kafka mysql事务_【干货】Kafka 事务特性分析

特性背景消息事务是指一系列的生产、消费操作可以要么都完成,要么都失败,类似数据库的事务。这个特性在0.10.2的版本是不支持的,从0.11版本开始才支持。华为云DMS率先提供Kafka 1.1.0的专享版服务,支持消息事务特性。支持事务消息…

23装饰模式(Decorator Pattern)

子类复子类,子类何其多 假如我们需要为游戏中开发一种坦克,除了各种不同型号的坦克外,我们还希望在不同场合中为其增加以下一种或多种功能;比如红外线夜视功能,比如水陆两栖功能,比如卫星定位功能等等。 按类继承的作法…

gb2312编码在线转换_python基础学习—04字符串与编码

点击上方蓝字关注我们不迷路!字符串与编码一、了解计算机编码1.1 编码定义:将信息从一种形式转换为另外一种形式的过程叫做编码,即信息转换过程举例:信息加密解密、语言翻译1.2 计算机编码定义:将计算机可读信息转换…

25外观模式(Facade Pattern)

动机(Motivate): 在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着子系统的变化而变化。那么如何简化客户程序与子系统之间的交互接口?如何将复杂系统的内部子系统与客户程序之间的依赖解耦&#…

mysql mybatis类型对应_Mybatis与数据库的类型对应

Mybatis与数据库的类型对应由于业务的改变,在首次存入数据库时某些int属性并没有赋值,于是默认值就开始污染数据库了。java实体属性对应mysql和SQL Server 和Oracle 数据类型对应1:Java数据类型与MySql数据类型对照表*对于bolb,一…

26享元模式(Flyweight Pattern)

面向对象的代价 面向对象很好地解决了系统抽象性的问题,同时在大多数情况下,也不会损及系统的性能。但是,在 某些特殊的应用中下,由于对象的数量太大,采用面向对象会给系统带来难以承受的内存开销。比如: 图形应用…

mysql一个事务多个log_MySQL识别一个binlog中的一个事物

MySQL测试版本5.7.14设置GTID_MODEONON(3): Both new and replicated transactions must be GTID transactions(生成的是GTID事物,slave也只能应用GTID事物)设置binlog格式为row模式做如下操作mysql> insert into test values(1,2);Query OK, 1 row affected (0.…

go for 循环遍历数组并排序_10. Go语言流程控制:for 循环

本文原文:http://golang.iswbm.comGithub:http://github.com/iswbm/GolangCodingTimeGo里的流程控制方法还是挺丰富,整理了下有如下这么多种:if - else 条件语句switch - case 选择语句for - range 循环语句goto 无条件跳转语句de…

27代理模式(Proxy Pattern)

直接与间接: 人们对复杂的软件系统常有一种处理手法,即增加一层间接层,从而对系统获得一种更为灵活、 满足特定需求的解决方案。 …

mysql设计资源目录售卖_MySQL目录设计一些策略_mysql

前言索引加快了检索的速度,但是却降低了数据列里插入、删除以及修改数值的速度。也就是说,索引降低了许多涉及写入的操作速度。之所以出现这种情况,是由于写入一条数据不仅仅是要写入到数据行,还需要所有的索引都作出相应的改变如…

31模板方法(Template Method)

无处不在的Template Method 如果你只想掌握一种设计模式,那么它就是Template Method! 动机(Motivate): 变化 -----是软件设计的永恒主题,如何管理变化带来的复杂性?设计模式的艺术性和复杂度就在于如何 分析,并发现系统中…

bat 脚本清空窗口内容_tomcat9.0启动脚本startup.bat的分析

1、 Apache Tomcat的下载和安装从Apache官网https://tomcat.apache.org/可以下载各种版本的tomcat软件,下载的文件格式可以是zip/tar.gz/exe形式的。如下图所示,在64位windows中使用tomcat,我们可以下载"64-bit Windows.zip",直接解…

33迭代器模式(Iterator Pattern)

动机(Motivate): 在软件构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素;同时这种“透明遍历”也为“ 同一种算法在多种集合对象上进行操作…

MySQL什么是关系_MySQL教程-关系模型

MySQL教程-关系模型Date 2021-1-22Author Haihan Gao什么是关系模型关系模型本质上就是多个存储数据的二维表表的每一行称为记录记录是一个逻辑意义上的数据表的每一列称为字段。同一个表每一行记录拥有若干相同字段字段定义数据类型:INT,BIGINT,DOUBLE是否允许为NU…

32命令模式(Command Pattern)

耦合与变化: 耦合是软件不能抵御变化灾难的根本性原因。不仅实体对象与实体对象之间存在耦合关系,实体对象与行为操作之间也存在耦合关系。 动机(Mot…

mysql 事务实例_mysql实现事务的提交和回滚实例

mysql创建存储过程的官方语法为:复制代码 代码如下:START TRANSACTION | BEGIN [WORK]COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]SET AUTOCOMMIT {0 | 1}我这里要说明的mysql事务处理多个SQL语句的回滚情况。…

34观察者模式(Observer Pattern)

动机(Motivate):在软件构建 过程中,我们需要为某些对象建立一种“通知依赖关系” --------一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密&#x…

mysql自定义存储过程_MySQL自定义函数、触发器、存储过程

存储过程概念存储过程,是一个数据库对象,类似一个函数。在存储过程中可以使用SQL中的绝大部分内容,并且可以加入编程语言的特性(循环判断分支)。编写好存储过程之后,可以在客户端调用存储过程,存储过程会自动的执行里面…