Use o HAproxy (SSL) na frente do proxy http

2

Atualmente, estou tentando criar um aplicativo que seja capaz de equilibrar o tráfego entre meu polipo processos. Com http tudo está funcionando encontrar mas assim que eu viro para https haproxy simplesmente mostra "400 bad" solicita alguma idéia por quê?

Esta é minha configuração:

                                                <-> Polipo 1 (http) 
Client <----> (https) HAproxy <----> (http)     <-> Polipo 2 (http)
                                                <-> Polipo 3 (http)

Esta é a minha configuração do HAproxy:

global
  maxconn 4096 
  daemon
  tune.ssl.default-dh-param 2048
  ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
  ssl-default-bind-options no-sslv3
  pidfile <%= pid_file %>

defaults
  mode http
  maxconn 4096
  option  httplog
  option  dontlognull
  option forwardfor
  option http-server-close
  retries 3
  timeout connect 5s
  timeout client 60s
  timeout server 60s




frontend rotating_proxies
  bind *:<%= port %> ssl crt /etc/ssl/private/mydomain.pem
  reqadd X-Forwarded-Proto:\ https
  default_backend polipo
  option http_proxy


backend polipo
  option http_proxy
  http-response replace-value Location ^http://(.*)$ https://
  redirect scheme https if !{ ssl_fc }
  balance leastconn



  <% backends.each do |b| %>
  server <%= b[:name] %><%= b[:port] %> <%= b[:addr] %>:<%= b[:port] %> check maxconn 4096
  <% end %>

Não tenho certeza sobre

http-response replace-value Location ^http://(.*)$ https://

O que exatamente isso significa? Polipo está falando apenas http (não criptografado). O haproxy deve simplesmente fazer o descarregamento de ssl.

    
por Venom 26.07.2018 / 08:49

1 resposta

1

tl; dr: está tudo bem, é o URL público e remove option http_proxy .

Citando os documentos :

The Location response header indicates the URL to redirect a page to. It only provides a meaning when served with a 3xx (redirection) or 201 (created) status response.

O redirecionamento deve ser executado pelo user-agent e, portanto, deve ser apresentado o URL correto a ser usado ao acessar o HAProxy.

Dos documentos do HAProxy :

option http_proxy [...] In this mode, no server is declared, and the connection is forwarded to the IP address and port found in the URL after the "http://" scheme.

Isso não é o que você quer. Solte a diretiva.

    
por 26.07.2018 / 10:25