我一直在尝试使用 HAProxy 实现负载平衡的安全代理直通。基本上我想要做的是:
request ----> haproxy passthrough -----> multiple proxy servers -----> target
现在,我不想将其公开,因此我为 HTTP 请求添加了 HTTP Basic 身份验证。它运行良好,未经授权的请求将被拒绝。
但是,我无法对 HTTPS 请求执行相同操作,所有请求都毫无安全性或限制地通过。
请注意,使用源 IP 限制是不可能的,因为请求可能来自各种来源。
这是我的 haproxy.cfg 文件:
global
log /dev/log local0
log 127.0.0.1 local1 notice
maxconn 4096
user haproxy
group haproxy
daemon
defaults
log global
mode http
option dontlognull
retries 3
option redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
userlist L1
user john insecure-password doedoe
listen webproxies 0.0.0.0:3128
bind *:3128
mode http
option httplog
stats enable
stats uri /haproxy?stats
balance roundrobin
option httpclose
option forwardfor
server proxy01 [proxy_ip_1]:[port] check
server proxy02 [proxy_ip_2]:[port] check
acl auth_ok http_auth(L1)
http-request auth unless auth_ok
userlist L2
user johnhttps insecure-password doedoe
listen webproxiesHttps 0.0.0.0:3129
mode tcp
bind *:3129
balance roundrobin
server proxy01 [proxy_ip_1]:[port] check
server proxy02 [proxy_ip_2]:[port] check
acl auth_ok_https http_auth(L2)
http-request auth unless auth_ok_https
注意:[proxy_ip_1]:[port] 和 [proxy_ip_2]:[port] 通常是真实的 IP。
欢迎任何想法!
谢谢