我想在几个httpauthentication的代理之间轮换。 但是我无法将其插入到configuration文件中,因为url结构是不同的。 当我删除用户名和传递(但请求用户名和通过当然)它的工作原理。 有没有办法发送凭证? 如果我不添加他们我得到一个407代理身份validation错误。
global daemon maxconn 500 defaults mode http timeout connect 5000ms timeout client 50000ms timeout server 50000ms frontend rotatingproxies bind *:3000 default_backend rotateproxy option http_proxy option http-use-proxy-header backend rotateproxy option http_proxy server proxyserver user:[email protected]:9999 server proxyserver user:[email protected]:9999 balance roundrobin
它不这样工作。 你需要真实的服务器地址。 如果你想添加一个用户名和密码,有一个解决scheme。 您需要先用base64手动对它们进行编码,然后将结果string添加到Proxy-Authorization标头中。 例如 :
$ echo -n user:pass | openssl enc -a dXNlcjpwYXNz backend rotateproxy server proxy1 ip1:9999 server proxy2 ip2:9999 reqadd Proxy-Authorization:\ Basic\ dXNlcjpwYXNz
您的客户端将不得不使用haproxy作为显式代理,但是您需要删除“选项http_proxy”。
我search了HAProxy-1.3文档 ,似乎并不支持你所要求的。
如果你有权访问后端服务器,我会build议closuresauthentication,然后在HAProxy前添加另一个web服务器,例如nginx,只做基本的httpauthentication。