HAProxy访问控制列表求解
火狐、Chrome等都有些插件,可以定义一组代理,然后根据网址选择代理。比如我定义Tor 127.0.0.1:9050,然后写规则*.baidu.com/*走代理tor;如果规则都不符合,就直接连接。
我注意到HAProxy有访问控制列表,有url_sub函数,应该也可以做这个功能。我想试试这个可不可行。
我先设置浏览器全走代理HAProxy,然后HAProxy写一个backend tor 127.0.0.1:9050。然后写acl:
acl baidu url_sub baidu
use_backend Tor if baidu
这规则意思就是设置一条名为baidu的规则,如果url中有baidu,就把请求传给tor。
但是如果这些规则都不符合,请求会给谁呢?比如我浏览器访问www.baidu.com,浏览器把请求给haproxy,haproxy把请求给tor,tor再去访问www.baidu.com。
如果我浏览器访问www.qq.com,浏览器把请求给haproxy,haproxy能不能直接访问www.qq.com?
[解决办法]
haproxy似乎不允许直接连接。
你可以用squid,它既可以走上级代理,也可以走直连。这里有关于suqid的设置,可以看看。