Nginx: Qual é a diferença entre "adicionar" https e redirecionar http para https?

1

Eu tenho dois blocos de servidores. Ambos fazem uma coisa semelhante: Permitir que eu use https.

Agora, pergunto-me: em um caso, eu redireciono todo o tráfego de http para https. No outro, parece que estou permitindo https.

Alguém pode me explicar, qual é a diferença? Desde quando eu estou solicitando meu domínio, mesmo com link : //test.example.com, eu ainda recebo em ambos os casos um redirecionamento para https.

Existe alguma diferença?

Estes são os dois arquivos:

Arquivo 1- Redirecionando http para https

server {
    listen 80;
    listen [::]:80;
    server_name test.example.com
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    root /var/www/test/staging/current;

    index index.php index.html index.htm index.nginx-debian.html;

    server_name test.example.com;

    include snippets/ssl-test.example.com.conf;
    include snippets/ssl-params.conf;

    location / {
        try_files $uri $uri/ =404;
    }
}

Arquivo 2 - Adicionando https

server {
    listen 80;
    listen [::]:80;
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    root /var/www/test/staging/current;

    index index.php index.html index.htm index.nginx-debian.html;

    server_name test.example.com;
    include snippets/ssl-test.example.com.conf;
    include snippets/ssl-params.conf;

    location / {
        try_files $uri $uri/ =404;
    }
}
    
por LoveAndHappiness 01.02.2017 / 14:28

2 respostas

1

A partir dos detalhes da sua pergunta, o Arquivo 2 aparece para aceitar conexões sobre ambos, http e https , sem redirecionamento de um para o outro.

No entanto:

  • seu aplicativo pode forçar as conexões a serem em https , causando um redirecionamento se http for detectado ou
  • seu arquivo ssl-params.conf pode conter um cabeçalho Segurança de transporte restrita que faz com que seu navegador force a conexão a ser https
por 01.02.2017 / 14:44
1

A segunda configuração não deve redirecionar. Quando você testou a primeira configuração antes, seu navegador pode ter armazenado em cache o redirecionamento (um cache, que é difícil de remover, tente outro navegador (perfil)).

E você ainda pode usar a segunda configuração com redirecionamento, quando fizer a correspondência para $scheme = http e redirecionar. Isso pode simplificar sua configuração.

    
por 01.02.2017 / 14:53

Tags