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节点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值