Nginx: proxy reverso e http para redirecionar https

1

Atualmente, uso um proxy reverso para mapear my.domain.com para uma porta 5000, mas também gostaria de redirecionar o tráfego http para https. Eu não quero adicionar informações cert SSL, como isso é tudo tratado pela Cloudflare.

Aqui está o meu proxy reverso de trabalho:

server {
    listen 80;
    server_name my.domain.com;

    proxy_set_header X-Real-IP  $remote_addr;

    location / {
        proxy_pass http://localhost:3000;
    }
}

Aqui está minha tentativa quebrada ( ERR_TOO_MANY_REDIRECTS ) de adicionar um redirecionamento https ao proxy reverso.

server {
    listen 80;
    server_name my.domain.com;
    return 302 https://my.domain.com$request_uri;
}

server {
    listen 443;
    server_name my.domain.com;

    proxy_set_header X-Real-IP  $remote_addr;

    location / {
        proxy_pass http://localhost:3000;
    }
}
    
por ethanmad 17.08.2015 / 03:12

1 resposta

0

Como você espera que seu servidor da Web saiba se uma conexão chegou ao Cloudflare via HTTPS ou HTTP? Existem basicamente duas opções:

  1. Cloudflare define um cabeçalho, indicando se a solicitação foi ou não recebida por HTTPS; ou
  2. As conexões com o Cloudflare via HTTPS também são enviadas por proxy para você por HTTPS.

Eu achei que o Cloudflare oferecia suporte à opção 1, mas não consigo encontrar documentos nele agora. No entanto, eles definitivamente suportam a opção 2 e talvez até precise comprar seu próprio certificado TLS para fazer isso . Eu recomendaria strongmente fazer isso e ativar a porta 443 em seu servidor nginx para usar o TLS.

    
por 17.08.2015 / 03:18