从Haproxy上的文件中读取acl white列出的IP

时间:2017-04-19 12:24:26

标签: haproxy

我正在尝试从文件

将白名单IP加载到Haproxy acl

我能够通过向haproxy配置文件添加内联来将ip列入白名单,而且效果很好

我想知道有没有办法可以指定文件的IP地址并从haproxy配置中读取

这是我的Haproxy conf

import re

def getBatteryLevel():
    BATTERY_CMD = ["/usr/sbin/ioreg", "-l"]
    the_regex = re.compile("Capacity|ExternalChargeCapable")

    output = subprocess.check_output(BATTERY_CMD)        
    batteryStatus = [l for l in output.splitlines() if the_regex.search(l)]

2 个答案:

答案 0 :(得分:5)

我们使用" -f"指定白名单ip源。 haproxy.conf文件中的标志。

在/ etc / haproxy /中创建whitelist.lst并列出所有带有子网掩码的白名单ip,例如: - 192.168.1.1/32 192.168.2.1/32 192.168.0.1/24等。

< / p>

这是我的haproxy conf文件,它从文件中加载白名单ip。

frontend http-in
    bind *:80
    mode http
    reqadd X-Forwarded-Proto:\ http
    acl whitelist src -f /etc/haproxy/whitelist.lst
    acl all src 0.0.0.0

    acl demo hdr_end(host)  -i 192.168.20.26
    use_backend demo if demo whitelist

backend demo
    balance leastconn
    option httpclose
    option forwardfor
    cookie JSESSIONID prefix
    server locahost localhost:8080 cookie A check

答案 1 :(得分:0)

global
        log /dev/log    local0
        log /dev/log    local1 notice
        chroot /var/lib/haproxy
        user haproxy
        group haproxy
        daemon

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        contimeout 5000
        clitimeout 50000
        srvtimeout 50000
        errorfile 400 /etc/haproxy/errors/400.http
        errorfile 403 /etc/haproxy/errors/403.http
        errorfile 408 /etc/haproxy/errors/408.http
        errorfile 500 /etc/haproxy/errors/500.http
        errorfile 502 /etc/haproxy/errors/502.http
        errorfile 503 /etc/haproxy/errors/503.http
        errorfile 504 /etc/haproxy/errors/504.http

frontend http-in
    bind *:80
    mode http
    reqadd X-Forwarded-Proto:\ http

    default_backend demo

    acl white_list src -f /etc/haproxy/whitelist.lst
    tcp-request content accept if white_list
    tcp-request content reject

backend demo
    balance leastconn
    option httpclose
    option forwardfor
    cookie JSESSIONID prefix
    server locahost localhost:8080 cookie A check