Você tem alguns problemas com suas configurações.
Vamos passar por cada bloco de servidor individual aqui individualmente.
Bloco 1: projects.old-site.com - > redireccionamento de projects.new-site.com
Isso é o que você nos forneceu:
server {
listen 80;
listen 443 ssl;
server_name projects.old-site.com;
access_log off;
return 301 $scheme://projects.new-site.com;
}
Você está perdendo um lote das coisas aqui para configuração:
-
ssl_certificate
directive - necessário saber o que o certificado SSL serve para o domínio. -
ssl_certificate_key
directive - o arquivo de chave de certificado SSL que corresponde ao certificado SSL para o site de projetos 'antigo'.
Você está fazendo um redirecionamento 301 para corresponder ao esquema, mas por que está fazendo isso se direcionar o não-SSL para SSL no bloco de servidores 2? Apenas redirecione para o site HTTPS, e inclua o $request_uri
por razões óbvias (você não passa o mesmo URI de solicitação até que as coisas não funcionem corretamente).
Seu bloco de servidores correto deve ficar mais parecido com isto:
server {
listen 80;
listen 443 ssl;
server_name projects.old-site.com;
ssl_certificate /path/to/valid/projects.old-site.com/certificate;
ssl_certificate_key /path/to/valid/projects.old-site.com/certificate.key;
access_log off;
return 301 https://projects.new-site.com$request_uri;
}
Bloco # 2: http - > Redirecionamento de https para projects.new-site.com
Você nos deu isto:
server {
listen 80;
server_name projects.new-site.com;
access_log off;
client_max_body_size 100M;
return 301 https://$host$request_uri;
}
Você não tem muitos problemas aqui, mas vamos não aceitar $host
globalmente aqui (não precisamos disso, sabemos onde queremos que acabe), e nós não precisa de client_max_body_size
. Redirecionamentos 301 não respeitam isso de qualquer maneira.
Você deve acabar com isso:
server {
listen 80;
server_name projects.new-site.com;
access_log off;
return 301 https://projects.new-site.com$request_uri;
}
Bloco 3: https://projects.new-site.com
Agora, para o seu terceiro bloco. * Sem o bloco de servidores inteiro e todas as diretivas de configuração, não podemos ajudar adequadamente na configuração do bloco.
Você nos deu isto:
server {
listen 443 ssl;
server_name projects.new-site.com;
client_max_body_size 100M;
ssl_certificate /path/to/new-site.crt;
ssl_certificate_key /path/to/new-site.key;
...
}
Não há nada realmente errado com esse bloco, no entanto, a menos que você precise da diretiva client_max_body_size
do seu aplicativo de back-end, provavelmente deverá removê-lo.