A configuração de amostra que você fornece parece correta, e eu duvido que funcionaria como você descreve (você provavelmente fez muitas mudanças ao tentar simplificá-la).
Você está recebendo redirecionamentos errados em algo como curl ou somente no navegador? Eu lidei com casos em que permanent está permanentemente em cache no Mozilla (por exemplo, de um nginx.conf anterior), sem nenhuma maneira de invalidar uma única entrada de cache 301 , então, você tem certeza de que não é um problema de cache? / p>
Em qualquer caso, você também pode tentar usar if para tornar os redirecionamentos condicionais (talvez o primeiro servidor seja escolhido como o servidor padrão):
if ($host = "cloud.example.de") {
rewrite ^ https://$server_name$request_uri? redirect;
}
return 403;
Ou, outra opção,
server {
listen 80;
listen 443 ssl;
server_name cloud.example.de;
if ($scheme != "https") {
rewrite ^ https://$server_name$request_uri? redirect;
}
root /home/user/web/cloud;
}
E tente curl -v para garantir que você está vendo o que está lá.