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á.