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 oldboy.org bind 0.0.0.0:80 option httplog option httpclose option forwardfor log global acl www hdr_reg(host) -i www.oldboy.org use_backend www.oldboy.org if www backend www.oldboy.org server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000
1 #/usr/bin/env python 2 #-*- coding:utf-8 -*- 3 # Day2/haproxy.py 4 5 _author_ = 'hepidong' 6 7 # 1、查 8 # 输入:www.oldboy.org 9 # 获取当前backend下的所有记录 10 # 11 # 2、新建 12 # 输入: 13 # arg = { 14 # 'bakend': 'www.oldboy.org', 15 # 'record':{ 16 # 'server': '100.1.7.9', 17 # 'weight': 20, 18 # 'maxconn': 30 19 # } 20 # } 21 # 22 # 3、删除 23 # 输入: 24 # arg = { 25 # 'bakend': 'www.oldboy.org', 26 # 'record':{ 27 # 'server': '100.1.7.9', 28 # 'weight': 20, 29 # 'maxconn': 30 30 # } 31 # } 32 33 def ha_search(): 34 "查找:域名下的所有记录" 35 hr = open('haproxy', 'r+', encoding='utf-8') 36 hr.seek(0) 37 hr_list = hr.read().split('\n') 38 hs = input('请输入要查找的域名:') 39 hs = 'backend ' + hs 40 if hs in hr_list: 41 for i in hr_list: 42 if ' server' in i: 43 print (i.strip()) 44 else: 45 print ('输入错误,请重新输入!') 46 hr.close() 47 48 def ha_add(): 49 "添加记录" 50 arg = eval(input('请输入要添加的记录:')) 51 backend = '\nbackend ' + arg['bakend'] 52 server = '\n server ' + arg['record']['server'] 53 weight = ' weight ' + str(arg['record']['weight']) 54 maxconn = ' maxconn ' + str(arg['record']['maxconn']) 55 56 ha = open('haproxy', 'a', encoding='utf-8') 57 ha.write(backend) 58 ha.write(server + weight + maxconn) 59 ha.flush() 60 print ('添加成功') 61 ha.close() 62 63 64 def ha_del(): 65 "删除记录" 66 hw_del = eval(input('请输入要删除的记录:')) 67 hr = open('haproxy', 'r+', encoding='utf-8') 68 hr.seek(0) 69 hr_list = hr.read().split('\n') 70 data = '' 71 for line in hr_list: 72 if hw_del['record']['server'] in line and str(hw_del['record']['weight']) in line and str(hw_del['record']['maxconn']) in line: 73 continue 74 data = data + line + '\n' 75 hr.close() 76 with open('haproxy', 'w+', encoding='utf-8') as hw: 77 hw.write(data) 78 print ('完成删除!') 79 80 81 #hw = open('haproxy', 'w+', encoding='utf-8') 82 83 84 def index(): 85 86 while True: 87 print ('1. search\n2. add\n3. delete') 88 89 p = input('请选择要进行的操作(q退出):') 90 if p == '1': 91 ha_search() 92 elif p == '2': 93 ha_add() 94 elif p == '3': 95 ha_del() 96 elif p == 'q': 97 exit() 98 else: 99 print ('输入错误,请重新输入!') 100 101 102 index()