Я хочу переключаться между несколькими прокси с аутентификацией http. Но я не могу вставить это в файл конфигурации, потому что структура URL-адресов другая. Он работает, когда я удаляю имя пользователя и передаю (но, конечно, запрашиваю имя пользователя и прохожу). Есть ли способ отправить учетные данные? Если я не добавлю их, я получаю ошибку авторизации прокси 407.
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:pass@domain.com:9999
server proxyserver user:pass@domain.com:9999
balance roundrobin
Это не так. Вам нужен реальный адрес сервера. Если вы хотите добавить имя пользователя и пароль, решение есть. Вам нужно сначала вручную закодировать их в base64 и добавить полученную строку в заголовок 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 в качестве явного прокси, и вам необходимо удалить «option http_proxy».
Я просмотрел Документация HAProxy-1.3, и, похоже, он не поддерживает то, о чем вы просите.
Если у вас есть доступ к внутреннему серверу, я бы предложил отключить там аутентификацию и добавить еще один веб-сервер, например nginx перед HAProxy для выполнения только базовой HTTP-аутентификации.