Назад | Перейти на главную страницу

Аутентифицированные прокси на балансировщике нагрузки HAProxy

Я хочу переключаться между несколькими прокси с аутентификацией 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-аутентификации.