首页 > 其他分享 >云计算28-----haproxy

云计算28-----haproxy

时间:2024-08-14 19:25:50浏览次数:14  
标签:haproxy __ slave 28 ----- sql stats root

一、haproxy
官网https://www.haproxy.com/
自由及开放源代码软件

HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负我均衡,以及基TCP和HTTP的应用程序代理。

HAProxy特别适用于那些负载特大的veb站点,这些站点通常又需要会活保或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式一与它可以很简单安全的整合进用户当前的架构中,同时可以保护用户的web服务器不被暴露到网上。

HAProxy实现了一种事件驱动,单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户空间(User-Space)实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以使每个CPU时间片(Cycle)做更多的工作。

包括GitHub、Bitbucket[3]、Stack Overflow[4]、Reddit、Tumblr、Twitter5和Tuenti[7]在内的知名网站,及亚马逊网络服务系统都使用了HAProxy。

1、安装
[root@haproxy ~]# yum -y install ntpdate

[root@haproxy ~]# yum -y install ntp
[root@haproxy ~]# systemctl start ntpd
[root@haproxy ~]# systemctl enable ntpd

2、安装haproxy
[root@haproxy ~]# yum -y install haproxy

3、配置文件地址
[root@haproxy ~]# rpm -ql haproxy
[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg 

  

 

4、启动服务
[root@haproxy ~]# systemctl start haproxy.service 
[root@haproxy ~]# systemctl enable haproxy.service 

5、web服务器
[root@web01 ~]# echo "web01" > /usr/share/nginx/html/index.html

[root@web02 ~]# echo "web02" > /usr/share/nginx/html/index.html

6、访问测试
[root@haproxy ~]# curl 192.168.8.149
web02
[root@haproxy ~]# curl 192.168.8.149
web01

7、DNS服务
[root@dns ~]# vim /var/named/aaa.com.zone

  

[root@dns ~]# systemctl restart named

[root@haproxy ~]# echo "nameserver 192.168.8.143" > /etc/resolv.conf

[root@haproxy ~]# curl hp.aaa.com
web01
[root@haproxy ~]# curl hp.aaa.com
web02

8、添加统计页面
[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg 

 # 定义web管理界面
   listen statistics
      bind *:9090                 #定义监听端口
      mode http                   #默认使用协议
      stats enable                #启用stats
      stats uri /hadmin?stats     #自定义统计页面的url 
      stats auth admin:admin      #统计页面的账号密码
      stats hide-version          #隐藏在统计页面上的haproxy版本
信 
      stats refresh 30s           #统计页面自动刷新时间
      stats admin if TRUE         #如果认证通过就做管理功能,可>以管理后端服务器
      stats realm hapadmin        #统计页面密码框上提示文件,默>认为haproxy\statisti cs

  

9、加权轮询

[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg 

  

[root@haproxy ~]# systemctl restart haproxy.service 

  

二、使用haproxy对mysql做代理

[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg 

[root@haproxy ~]# systemctl restart haproxy.service 

三、mysql读写分离
[root@python ~]# pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 

[root@python ~]# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ some-package

[root@python ~]# pip3 install pymysql 

[root@python ~]# python3

>>> import pymysql
>>>master_conn=pymysql.connect(host="192.168.8.148",user="slave",password="slave_123",database="test",port=3306) 
>>>slave_conn=pymysql.connect(host="192.168.8.146",user="slave",password="slave123",database="test",port=3306)
>>> updatesql="update user set password='000' where username='aaa'"
>>> master_cursor.execute(updatesql)
>>> master_conn.commit()
>>> delete_sql="delete from user where username='aaa' "
>>> master_cursor. execute(delete_sql)
1
>>> master conn. commit ()
# 执行查询slave
>>># 执行查询 获得获得slave 游标
>>> slave_cursor=slave_conn.cursor()
>>> sql
'select * from user'
>>> slave_cursor.execute(sql)
3
>>> slave_cursor.fetchall()
((2, 'bbb', 'bbbb'), (3, 'ccc', 'cccc'),(1004, 'ddddd', 'ddddddd'))
 

class rwsplit(object):        

        def __init__ (self):                

                print("initialized")

if __name__ == "__main__":         demo=rwsplit()

class rwsplit(object):        

         def __init__ (self):                

                print("initialized")        

        def master_statment(self,sql):                

                pass        

        def slave_statment(self,sql):                

                pass

if __name__ == "__main__":        

        demo=rwsplit()        

        sql=input("sign sql:")        

        if sql[:6]=="select":                

                demo.slave_statment(sql)        

        else:                

                demo.master_statment(sql)

标签:haproxy,__,slave,28,-----,sql,stats,root
From: https://blog.csdn.net/2301_78168469/article/details/141198299

相关文章

  • 第一阶段复习 --Python、Linux、Shell、MySQL
    文章目录第一阶段复习总结python1.python是面向对象的解释型动态数据语言的高级程序设计语言2.变量3.基础数据类型4.数据类型之间的转换5.str类型字符串方法序列6.运算符7.选择循环结构8.数据容器9.函数参数10.类11.正则12.文件读写13.异常处理tryexc......
  • 软考-软件设计师 (操作系统)
      ......
  • sqli-labs靶场通关攻略
    一,进入sqli-labs-master靶场第一关,加入参数id.列如:127.0.0.1二.判断SQL注入漏洞--引起报错找到闭合与注释加单引号判断闭合,发现为字符型注入,三.使用orderby判断字段数有几列:3列回显正常,4列出现报错,说明只有3列四.使用unionselect确定回显点五.看到2和3的回显查......
  • Git泄露--------Log
    步骤一:虚拟机运行命令:python2GitHack.py后跟网址http://challenge-d9ebdd73f20fda85.sandbox.ctfhub.com:10800/.git步骤二:切换到dist文件下步骤三:查看目录下内容:ls-la步骤四:进入.dist目录下:cd.git步骤五:输入命令查找:gitshow步骤六:复制内容提交FlagStash......
  • R 语言GJR-GARCH、GARCH-t、GARCH-ged分析金融数据波动性预测、检验、可视化
    全文链接:https://tecdat.cn/?p=37354原文出处:拓端数据部落公众号 在当今复杂多变的金融市场中,准确理解和预测股票指数的走势对于投资者和金融机构而言至关重要。GARCH模型作为一种有效的工具,能够捕捉金融时间序列数据中的波动聚集性和异方差性,为我们提供更深入的市场洞察。准......
  • 部署--项目打成 jar 包后部署为Docker镜像
     在Java项目打成jar包后,可以通过Docker容器进行部署。 1.打包Java项目为jar文件mvncleanpackage完成后会在本地目录target下生成jar文件。如: 2.文件上传将jar包上传到制定的目录下。(如:我的是 control包放在目录/home/dockerdata/docke......
  • CF1528C Trees of Tranquillity
    小清新找性质题,想到关键就很简单考虑在第一棵树上枚举一条从\(1\)到某个点的链,显然这些点之间满足第一个限制,现在只要在这些点中选出尽可能多的点满足第二个限制即可在第二棵树上两个点没有祖先关系,等价于它们对应的DFS序区间相离而两个点的DFS序区间显然要么相离要么包......
  • 打靶记录10——hacksudo---Thor
    靶机:https://download.vulnhub.com/hacksudo/hacksudo---Thor.zip难度:中目标:取得root权限+flag涉及攻击方法:主机发现端口扫描Web目录爬取开源源码泄露默认账号密码SQL注入破壳漏洞GTFOBins提权主机发现:sudoarp-scan-l端口扫描和服务发现sudonmap-p-......
  • docker-compose部署tdengine 3.3.0.0集群
    说明:官方文档提供dockerswarm部署多台服务器集群方式,不适用于公司目前部署方式,故研究多台服务器docker部署集群目前只是部署,还未生产使用,仅供参考一、环境:服务器3台,系统为Ubuntu20.04.4LTSemscluster0110.1.1.103emscluster0210.1.1.104emscluster0310.1.1.105......
  • 这次轮到AntV增强Awesome-Graphs
    前不久,Awesome-Graphs刚Release完1.1.0版本后,我在《从论文到图谱,或许只差一个html》一文中,向大家详细展示了Awesome-Graphs的产品能力与交互形态。版本一经发布,作为蚂蚁数据可视化解决方案(AntV)一号位的志伟老哥,看到项目还在使用vis.js组件库,直接“按耐不住”地要给项目提供AntVG......