HAProxy redireciona o tráfego para o NGINX recebendo erro “A solicitação HTTP simples foi enviada para a porta HTTPS”

2

O que estamos tentando é ter o HAProxy para ouvir todo o tráfego de entrada da porta 443 (HTTPS e WSS)

Abaixo está nossa configuração do HAProxy:

frontend wwws
  bind 0.0.0.0:443 ssl crt /etc/haproxy/server.pem
  timeout client 1h
  default_backend www_backend

backend www_backend
  mode http
  stats enable
  stats uri /haproxy
  option forwardfor
  reqadd x-forwarded-proto:\ https

  server server1 backend:3000 weight 1 maxconn 8192 check

0.0.0.0:443 (por exemplo, link ) é o nosso servidor proxy de alta disponibilidade para todos os 443 backend: 3000 é o nosso servidor nginx que está configurado para escutar conexões SSL

O problema atual que enfrentamos agora é quando inserimos o link , o navegador está apresentando o seguinte erro:

400 Bad Request
The plain HTTP request was sent to HTTPS port
nginx/1.7.5

Parece que quando o haproxy encaminha o tráfego para o nginx (backend: 3000) ele converte para http.

Eu pensei que "reqadd x-forwarded-proto: \ https" é suposto ter certeza de que é https.

Não tenho certeza do que está errado com a nossa configuração do haproxy.

    
por forestclown 25.06.2015 / 13:47

1 resposta

6

Altere a especificação do servidor de back-end para esta:

server server1 backend:3000 weight 1 maxconn 8192 check ssl verify none

A parte "ssl" define que o backend fala SSL, se não estiver presente, o haproxy será o padrão para HTTP simples. O "verify none" desativa a verificação de certificado, algo que você provavelmente não quer fazer com seus servidores internos de qualquer maneira.

    
por 25.06.2015 / 14:15