LB_之HAProxy 反向代理;代理mysql;高可用

/etc/haproxy/haproxy.cfg                          //haproxy 的配置文件mysql

haproxy默認是使用5000端口web

[root@localhost ~]# lsof -i:80       //查看一下80端口有沒有佔用sql

HAProxy-反向代理vim

[root@localhost ~]# vim /etc/haproxy/haproxy.cfg服務器

4111.png

在 backend wangdada 下frontend

添加你的real server ide

注意!:測試

4222.png

frontend  main *:默認是5000 ,我該成了80端口。spa

[root@localhost ~]# systemctl start haproxy3d

[root@localhost ~]# lsof -i:80

在/etc/haproxy/haproxy.cfg添加此段,能夠查看haproxy狀態

listen status  

   bind 0.0.0.0:8000

   option httplog

   stats refresh 30s                  

   stats uri /status                  

   stats realm Haproxy_Manager_Page      

   stats auth admin:admin          

   stats hide-version              

測試:10.18.42.157:8000/status       在輸入你設置的密碼

[root@localhost ~]# systemctl restart haproxy

[root@localhost ~]# lsof -i:8000

haproxy-代理mysql

[root@localhost ~]# vim /etc/haproxy/haproxy.cfg           //添加listem msql段

43333.png

[root@localhost ~]# lsof -i:3306

[root@localhost ~]# systemctl stop mysqld

[root@localhost ~]# systemctl restart haproxy

[root@localhost ~]# systemctl status haproxy

[root@localhost ~]# lsof -i:3306

而後再你的 上游服務器(真實mysql)的mysql裏面添加:

mysql> grant all on *.* to root@'10.18.42.%' identified by 'WJW952945084@qq.com';

mysql> flush privileges;

mysql> select * from mysql.user\G;

隨便找一臺機子訪問10.18.42.157,實質式訪問的是10.18.42.74

[root@www ~]# mysql -uroot -p'WJW952945084@qq.com' -h 10.18.42.157

haproxy的高可用

haproxy+keepalived  

作兩個haproxy,將作好的一個配置文件cp一份,記得backup配置文件。這樣就有兩個如出一轍的haproxy,在這兩個有haproxy的服務器上都安裝上keepalived分別進行以下設置:

[root@localhost ~]# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

  router_id wang                      //多個keepalived這個名字之間不能同樣    

}

vrrp_script chk_haproxy {                                  //設置一個vrrp_scrpt,名字隨意

   script "lsof -i:80 | grep haproxy || exit 1"        //判斷80端口有無haproxy,沒有返回1

   interval 2                                                         //兩秒判斷每一次

   fail 1                                                               //容許失敗1次

}

vrrp_instance web {

   state BACKUP                                             //本身根據狀況選擇master和backup

   interface ens33

   virtual_router_id 43

   priority 250

   nopreempt    設置爲不搶佔 注:這個配置只能設置在backup主機上,並且這個主機優先級要比另一臺高

   advert_int 1

   authentication {

       auth_type PASS

       auth_pass 1234444

   }

   track_script {

       chk_haproxy                               //調用上面的腳本

   }

   virtual_ipaddress {

       10.18.42.188

   }

}

相比以往增長的內容是青色背景部分,增長了一個腳本語句,和調用這個腳本的語句。若是檢測到80端口沒有haproxy,keepalived會讓讓出VIP,VIP就會飄到另外一個keepalived服務器上。就實現了高可用性。

ndb引擎

相關文章
相關標籤/搜索