Eu tenho o Balanceamento de carga HTTP / HTTPS configurado no Google Compute Engine com duas regras de encaminhamento global (HTTP e HTTPS). Cada regra aponta para um serviço de back-end com um protocolo HTTP.
Quero que todos os pedidos http://*
sejam acessados https://*
.
Enquanto o balanceador de carga se comunica com os serviços de back-end por HTTP, acho que não consigo obter o nginx no serviço de back-end para enviar de volta a 301
.
Eu tentei uma dúzia de pequenos ajustes no cálculo do google e todos acabam com o cálculo do google retornando um 502
.
Tenho certeza que alguém já configurou isso antes. Todas as dicas ou sugestões na direção certa são muito apreciadas.
load-balancing
google-compute-engine
Ryan Leckey
fonte
fonte
Respostas:
Temos uma configuração semelhante usando o balanceador de carga HTTP / HTTPS e conseguimos forçar o HTTPS. Não é possível diretamente no balanceador de carga, mas você pode configurá-lo no seu serviço de back-end. O balanceador de carga do Google Cloud definirá o cabeçalho http X-Forwarded-Proto com o valor http ou https. Você verifica esse cabeçalho no serviço de back-end (no nosso caso, verniz, mas isso também pode ser feito no Nginx) e, se o valor for http, você envia um 301 de volta.
fonte
if ($http_x_forwarded_proto = "http") {
return 301 https://$host$request_uri;
}
426
atualizar cabeçalho em vez de 301. Leia mais: stackoverflow.com/questions/17873247/...Eu enfrentei esse problema hoje e consegui resolvê-lo usando o balanceamento de carga TCP. Se você não precisar das opções específicas do balanceador de carga HTTP / HTTPS, talvez seja possível usar o balanceador de carga TCP (sem SSL) para receber tráfego nas portas 80 e 443. Para o tráfego da porta 80, é possível enviar de volta 301.
fonte