基于HTTP协议的Haproxy代理应用场景

   
 HaProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,援救虚拟主机,它是无偿、快捷而且可相信的一种减轻方案。应用到Haproxy首若是因为他无需付费,何况依照TCP和HTTP的使用代理。

  先介绍一下Haproxy的运用场景,七个是TCP代理,那边也是自个儿项目中动用的,另三个是HTTP代理,笔者就简介一下。基于Tcp协议的Haproxy代理应用场景:在VPC网络蒙受下,虚机A的数据库不可能被外界网络访问到,只好被在一样内网碰到下的虚机B访谈,这时候能够因此在虚机B上搭建Haproxy情况,通过Haproxy代理完结外部虚机C对虚机A数据库的访谈;这里自身项目中其实选取到的景色是这么的,在国有云上创设福睿斯DS实例,会有VPC互连网和Classic互联网,在采用VPC网络创建RubiconDS后,在展开数据同步时,会对该凯雷德DS数据库进行数量同步,那时候由于奥迪Q5DS的数据库在VPC互连网蒙受下,外网是无法直接访问那些福睿斯DS数据库。那时候咱们选取的是用叁个ECS云服务器上搭建叁个Haproxy代理,公网通过haproxy代理访谈那么些昂科拉DS数据库,那样就一挥而就了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

  基于HTTP协议的Haproxy代理应用场景。  基于HTTP协议的Haproxy代理应用场景。(四)开启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" 

  基于HTTP协议的Haproxy代理应用场景。  基于HTTP协议的Haproxy代理应用场景。  基于HTTP协议的Haproxy代理应用场景。(五)重启日志和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.输入网址

图片 1

 

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的动态平衡负载。

图片 2

  截止语:Haproxy效用依旧挺强大的,基于Haproxy代理的web应用,还会有web/mysql的均衡负载,。这里从来遭遇三个很费力的难点,正是测验连接后端mysql数据库的时候,一直报Host
is blocked because of many connection errors; unblock with ‘mysqladmin
flush-hosts’,最终化解的是翻开140服务器上的3306端口一直有个延续占用着,并且未有连接成功,最后只得重启140的mysql数据库就好使了。那一个主题素材今后并未有主意复现,所以这边就不深入分析现实的失实原因了。这里关键正是Haproxy轻松的选择,就算有畸形大概疑问大家都得以积极提议。

  

 

You may also like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图