修改配置文件haproxy

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了修改配置文件haproxy相关的知识,希望对你有一定的参考价值。

   文件内容

 1 global
 2 log 127.0.0.1 local2
 3 daemon
 4 maxconn 256
 5 log 127.0.0.1 local2 info
 6 defaults
 7 log global
 8 mode http
 9 timeout connect 5000ms
10 timeout client 50000ms
11 timeout server 50000ms
12 option  dontlognull
13 
14 listen stats :8888
15 stats enable
16 stats uri       /admin
17 stats auth      admin:1234
18 
19 frontend oldboy.org
20 bind 0.0.0.0:80
21 option httplog
22 option httpclose
23 option  forwardfor
24 log global
25 acl www hdr_reg(host) -i www.oldboy.org
26 use_backend www.oldboy.org if www
27 
28 
29 backend www.bigd.org                #节点bidg
30     server10.1.7.9 weight 20 maxconn 3000
31 
32 backend www.qq.com                 #qq节点
33     server171.8.7.7 weight 70 maxconn 3000

   代码部分

  1 #Author BigD
  2 # -*- coding:utf-8 -*-
  3 
  4 #修改配置文件haproxy
  5 # 1、查询节点下信息
  6 # 2、新建节点
  7 # 3、删除节点
  8 # 4、修改节点
  9 
 10 ###################################读取文件################################
 11 current_index = -1
 12 list = []
 13 dict_all = {}
 14 old_content = []
 15 print("有如下节点:")
 16 for index,line in enumerate(open("haproxy","r")):
 17 
 18     if line.startswith("backend"):
 19         current_index = index + 1
 20         nod = line.strip().split()[1]
 21 
 22         dict_all[nod.split(".")[1]]={}
 23         dict_all[nod.split(".")[1]]["bakend"] = nod
 24     elif index == current_index:
 25         dict_all[nod.split(".")[1]]["record"] = {}
 26         dict_all[nod.split(".")[1]]["record"]["server"] = line.strip().split()[1]
 27         dict_all[nod.split(".")[1]]["record"]["weight"] = line.strip().split()[3]
 28         dict_all[nod.split(".")[1]]["record"]["maxconn"] = line.strip().split()[5]
 29     else:
 30         old_content.append(line.strip())
 31 open("haproxy","r").close()
 32 ##########################代码正文###############################################
 33 while True:
 34     print("请选择需要的功能".center(50,"="))
 35     print("已有的节点:")
 36     for dict_one in dict_all:
 37         print(dict_one)
 38 
 39     print("现有功能:\n1、查询节点;\n2、增加节点;\n3、修改节点;\n4、删除节点\n5、退出。")
 40     choice = input("请选择你需要的功能:")
 41     if choice == "1":         #查询
 42         while True:
 43             choice_query = input("请输入查询的节点,退出(q):")
 44             if choice_query == "q":
 45                 break
 46             if choice_query in dict_all:                                            #查询
 47                 print("节点名称:",dict_all[choice_query]["bakend"])
 48                 print("ip地址:",dict_all[choice_query]["record"]["server"])
 49                 print("权重:",dict_all[choice_query]["record"]["weight"])
 50                 print("连接数:",dict_all[choice_query]["record"]["maxconn"])
 51             else:
 52                 print("wrong!")
 53 
 54     elif choice == "2":         #增加
 55         # print("增加")
 56         while True:
 57             add_simple_name = input("请输出节点简称")
 58             add_name = input("请输出节点名称")
 59             add_ip = input("请输出节点ip")
 60             add_weight = input("请输出节点权重")
 61             add_maxconn = input("请输出节点最大连接数")
 62             dict_all[add_simple_name]={}
 63             dict_all[add_simple_name]["bakend"] = add_name                      #节点简称
 64             dict_all[add_simple_name]["record"] = {}
 65             dict_all[add_simple_name]["record"]["server"] = add_ip              #节点ip
 66             dict_all[add_simple_name]["record"]["weight"] = add_weight          #节点权重
 67             dict_all[add_simple_name]["record"]["maxconn"] = add_maxconn        #节点最大连接数
 68             print("添加成功",dict_all[add_simple_name])
 69             break
 70     elif choice == "3":
 71         # print("修改")
 72         while True:
 73             modify_nod = input("你想修改哪个节点啊?退出(q)")
 74             if modify_nod == "q":
 75                 break
 76             if modify_nod in dict_all:
 77                 modify_nod
 78                 dict_all[modify_nod]["bakend"] = input("请输出修改后节点名称")
 79                 dict_all[modify_nod]["record"]["server"] = input("请输出修改后节点ip")
 80                 dict_all[modify_nod]["record"]["weight"] = input("请输出修改后节点权重")
 81                 dict_all[modify_nod]["record"]["maxconn"] = input("请输出修改后节点最大连接数")
 82     elif choice == "4":
 83         # print("删除")
 84         while True:
 85             delete_nod = input("你想删除那个节点呢,退出(q)?")
 86             if delete_nod == "q":
 87                 break
 88             if delete_nod in dict_all:
 89                 dict_all.pop(delete_nod)    #删除1
 90                 # del dict_all[delete_nod]    #删除2
 91                 print("删除成功!")
 92             else:
 93                 print("没有这个节点,重新输入!")
 94 
 95     elif choice == "5":
 96         # print("退出")
 97         open("haproxy", "w").write("")
 98         for i in old_content:
 99             # print(i)
100             open("haproxy", "a").write("%s\n"%i)
101             # open("haproxy_new", "a").write("\n")
102             #
103             # open("haproxy_new", "a").write(dict_all)
104         for i in dict_all:
105             print(i)
106             open("haproxy", "a").write("backend %s\n\tserver%s weight %s maxconn %s\n\n"%(dict_all[i]["bakend"],dict_all[i]["record"]["server"],dict_all[i]["record"]["weight"],dict_all[i]["record"]["maxconn"]))
107     else:
108         pass

现有功能:
1、查询节点;
2、增加节点;
3、修改节点;
4、删除节点
5、退出。
请选择你需要的功能:

以上是关于修改配置文件haproxy的主要内容,如果未能解决你的问题,请参考以下文章

Python小程序—修改haproxy配置文件

修改haproxy配置文件

Python-Day5修改haproxy配置文件

修改Haproxy文件配置,实现增删改查

Python3.5 day3作业二:修改haproxy配置文件。

修改配置文件haproxy