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.
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.
Tags redirect nginx https load-balancing http