Redirecionar de HTTP para HTTPS em relação ao cabeçalho X-Forwarded-For (terminação SSL usada)

1

Estou tentando redirecionar de HTTP para HTTPS. Meu servidor Nginx fica atrás de um balanceador de carga que terminará SSL para mim e enviará todo o tráfego (HTTP e HTTPS) para a porta 80. A única evidência que terei para indicar se a solicitação original feita foi HTTP ou HTTPS é através do X-Forwarded-For cabeçalho definido pelo balanceador de carga. Existe uma maneira integrada e barata de lidar com o redirecionamento no Nginx quando a solicitação original estava em HTTP? Tenha em mente que só terei um servidor configurado para a porta 80.

    
por orokusaki 05.06.2013 / 18:36

1 resposta

3

Assumindo que você está garantindo que o cabeçalho X-Forwarded-For é definido apenas para o tráfego SSL ...

if ($http_x_forwarded_for) {
    return 301 https://$host$request_uri;
}

Embora isso seja algo que você deve fazer no balanceador.

    
por 08.06.2013 / 01:12