文档章节

python 操作haproxy配置文件

eddy_linux
 eddy_linux
发布于 2015/11/10 00:07
字数 665
阅读 770
收藏 5
点赞 0
评论 0
raw_input 获取的用户输入是字符串
input_str = raw_input("请输入内容:")
 
#如:
#用户输入:123   则 input_str = "123"
#用户输入:hello 则 input_str = "hello"
#用户输入:{"k1":123, 'k2': 'eddy'}   则 input_str = " {'k1':123, 'k2': 'eddy'} "

################# raw_input 获取到的输入都是字符串、字符串、字符串 !!!!!!! #################
因为raw_input 获取的是字符串,所以用户输入的 " {'k1':123, 'k2': 'eddy'} " 不具有字典的特性,也就不能使用 dic['key'] 来获取值
如果想要将用户输入的内容转换下格式,

"{'k1':123, 'k2': 'eddy'}"       字符串转换成字典类型
"[11,22,33,44]"                     字符串转换成列表类型

json模块
json模块的作用之一:根据字符串书写格式,将字符串自动转换成相应格式

import json
inp_str = "[11,22,33,44]"
inp_list = json.loads(inp_str) # 根据字符串书写格式,将字符串自动转换成 列表类型
 
 
inp_str = " {'k1':123, 'k2': 'eddy'} "
inp_dict = json.loads(inp_str) # 根据字符串书写格式,将字符串自动转换成 字典类型



输出:
    1、获取ha记录
    2、增加ha记录
    3、删除ha记录
 
num = raw_input('请输入操作序号:')
 
如果用户输入的 1:
    read = raw_input('请输入backend:')     如输入:www.eddy.org
    讲配置文件 backend www.eddy.org 节点下的所有记录获取到,并输入到终端
 
如果用户输入的 2:
    read = raw_input('请输入要新加的记录:') 如: {'backend': 'test.eddy.org','record':{'server': '100.1.7.9','weight': 20,'maxconn': 30}}
    # 讲read字符串转换成 字典类型
    read_dict = json.loads(read)
 
    backend_title = read_dict['backend']
    # 去配置文件中找到指定的节点:
    # backend test.eddy.org
    # 如果已经存在,
        # 则在此节点下添加根据用输入构造出的记录,例如:
            server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000
    # 如果不存在,
        # 则添加backend节点和记录,例如:
    backend test.eddy.org
        server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000
 
    # (可选)可以再对节点下记录进行判断是否已经存在
 
如果用户输入的 3:
    read = raw_input('请输入要删除的记录:') 如: {'backend': 'test.eddy.org','record':{'server': '100.1.7.9','weight': 20,'maxconn': 30}}
    # 讲read字符串转换成 字典类型
    read_dict = json.loads(read)
    backend_title = read_dict['backend']
    #去配置文件中找到指定的节点,并在删除指定记录,如:
    backend test.eddy.org
         server 100.1.7.10 100.1.7.10 weight 20 maxconn 3000
         server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000   # 删除掉
 
    # (可选)如果backend下所有的记录都已经被删除,那么将当前 backend test.eddy.org 也删除掉。
原配置文件
global       
        log 127.0.0.1 local2
        daemon
        maxconn 256
        log 127.0.0.1 local2 info
defaults
        log global
        mode http
        timeout connect 5000ms
        timeout client 50000ms
        timeout server 50000ms
        option  dontlognull

listen stats :8888
        stats enable
        stats uri       /admin
        stats auth      admin:1234
frontend eddy.org
        bind 0.0.0.0:80
        option httplog
        option httpclose
        option  forwardfor
        log global
        acl www hdr_reg(host) -i www.eddy.org
        use_backend www.eddy.org if www

backend www.eddy.org
        server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000
backend buy.eddy.org
        server 100.1.7.90 100.1.7.90 weight 20 maxconn 3000


© 著作权归作者所有

共有 人打赏支持
eddy_linux
粉丝 18
博文 135
码字总数 188789
作品 0
成都
程序员
使用Haproxy及Nginx搭建Web群集

什么是HAProxy? HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理,可以运行于大部分主流的Linux操作系统上。 本次实验使用...

cchenyz ⋅ 前天 ⋅ 0

HAProxy负载均衡器的安装及配置

软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现。LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载...

zhangdiandong ⋅ 2014/02/12 ⋅ 0

高性能缓存服务器 nuster v1.7.10.1 发布

高性能缓存服务器 nusterv1.7.10.1 已发布。本次更新主要升级到 HAProxy v1.7.10, 更改了配置文件关键字,删除了 share 关键字, 为升级到HAProxy v1.8 进行了代码重构。这应该是 1.7 版本的最...

nuster ⋅ 04/24 ⋅ 0

linux的chkconfig服务注册(服务注册脚本说明)

linux上一些服务的重启以及随系统启动而启动,可以像windows那样注册为服务通过chkconfig 进行操作。在注册chkconfig时需要在linux的/etc/init.d/目录下有对应的启动脚本。 一、注册服务脚本...

Mr_sheng ⋅ 05/04 ⋅ 0

haproxy+mysql实现代理mysql

我们通常会碰到这样的业务场景: b主机和c数据库在同一个内网,a主机不能直接访问c数据库,我们可以通过在b主机上搭建代理让a访问c数据库,我们使用haproxy来干这个事情 centos7环境 mysql自...

小白的希望 ⋅ 06/08 ⋅ 0

高性能缓存服务器 nuster v1.8.8.3 和 v1.7.11.3 发布

高性能缓存服务器 nuster v1.8.8.3 和 v1.7.11.3 发布。本次更新主要修复了 一个配置文件解析的bug。 Broken rule key parser in config file (Thanks to Nelson) 介绍 nuster 是一个基于 HA...

nuster ⋅ 06/10 ⋅ 0

Haproxy+Nginx搭建Web群集

Haproxy 是一种群集调度工具 ,是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。 Haproxy特别适用...

若此生无缘 ⋅ 昨天 ⋅ 0

HAProxy启动时候常见问题

rabbitmq和haproxy结合时候,遇到了下面问题 某段配置:

HappyBoyLi ⋅ 06/17 ⋅ 0

高性能缓存服务器 nuster v1.8.8.1 支持 HTTP/2,多线程

高性能缓存服务器 nuster v1.8.8.1 已发布。本次更新主要是升级到 HAProxy v1.8.8, 支持 HTTP/2 和多线程。 项目主页 https://github.com/jiangwenyuan/nuster 介绍 nuster 是一个基于 HAPr...

nuster ⋅ 05/08 ⋅ 0

haproxy nginx X-Forwarded-For的值

client(web 浏览器) ----> haproxy(acl backend)----> nginx (proxy_pass)----> java程序 地址如下: 1.1.1.1 2.2.2.2 3.3.3.3 默认正常的java程序看到的 X-Forwarded-For 为 1.1.1.1,2.2.2......

cuizhiliang ⋅ 06/18 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

VS2015配置并运行汇编(一步一步照图做)【vs2017的链接在最后】

x64: TITLE Add and Subtract (AddSub.asm) ; This program adds and subtracts 32-bit integers. ; Last update: 2/1/02 ;.MODEL flat,stdcall x64 not su......

simpower ⋅ 昨天 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 昨天 ⋅ 0

Java桌球小游戏

其实算不上一个游戏,就是两张图片,不停的重画,改变ball图片的位置。一个左右直线碰撞的,一个有角度碰撞的。 左右直线碰撞 package com.bjsxt.test;import javax.swing.*;import j...

森林之下 ⋅ 昨天 ⋅ 0

你真的明白RPC 吗?一起来探究 RPC 的实质

你真的明白RPC 吗?一起来探究 RPC 的实质 不论你是科班出身还是半路转行,这么优秀的你一定上过小学语文,那么对扩句和缩句你一定不陌生。缩句就是去除各种修饰提炼出一句话的核心,而不失基...

AI9o後 ⋅ 昨天 ⋅ 0

z-index设置失效?

今天碰到了一个问题,就是在给li设置提示框的时候,有用到遮罩效果,本来想把对应的出现在最顶层,可是不管将li设置的z-index值设为多大,li都没有出现在遮罩层之上。 我在网上查了z-index设...

IrisHunag ⋅ 昨天 ⋅ 0

CyclicBarrier、CountDownLatch以及Semaphore使用及其原理分析

CyclicBarrier、CountDownLatch以及Semaphore是Java并发包中几个常用的并发组件,这几个组件特点是功能相识很容易混淆。首先我们分别介绍这几个组件的功能然后再通过实例分析和源码分析其中设...

申文波 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部