Я пытался реализовать защищенный прокси-сервер с балансировкой нагрузки с помощью HAProxy. В основном я хочу сделать следующее:
request ----> haproxy passthrough -----> multiple proxy servers -----> target
Я не хотел, чтобы это было открыто для публики, поэтому я добавил HTTP Basic auth для HTTP-запросов. Он работает нормально, и неавторизованные запросы отклоняются.
Однако я не смог сделать то же самое для запросов 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]: [порт] и [proxy_ip_2]: [порт] обычно являются настоящими IP-адресами.
Любая идея приветствуется!
Спасибо