Nginx redireciona HTTP para HTTPS

Nginx Redirect Http Https



Nginx, pronunciado como Engine x, é uma web gratuita de alto desempenho baseada em Linux de código aberto e um servidor proxy reverso que é responsável por gerenciar e manipular a carga do maior tráfego de sites na Internet. Nginx é uma ferramenta de redirecionamento poderosa que pode ser configurada facilmente em seu sistema para redirecionar o tráfego da web HTTP menos seguro ou não criptografado para um servidor da web HTTPS criptografado e protegido. Se você é um administrador de sistema ou desenvolvedor, está usando o servidor Nginx regularmente.

Neste artigo, vamos trabalhar como redirecionar o tráfego da web de HTTP para um HTTPS seguro em Nginx.







As respostas e solicitações são retornadas na forma de texto simples em HTTP, enquanto o HTTPS usa SSL / TLS para criptografar a comunicação entre o cliente e o sistema do servidor. Portanto, devido a vários motivos, HTTPS é usado sobre o HTTP, que estão listados abaixo:



  • Todos os dados entre o cliente-servidor em ambas as direções são criptografados. No entanto, ninguém pode acessar informações confidenciais se interceptado.
  • Quando você está usando HTTPS, o Google Chrome e outros navegadores consideram o domínio do seu site como seguro.
  • A versão HTTPS melhora o desempenho do site especificado usando o protocolo HTTP / 2.
  • Se você servir o domínio do seu site via HTTPS, o site terá uma classificação melhor no Google, pois favorece todos os sites protegidos por HTTPS.

É preferível redirecionar o tráfego HTTP para HTTPS no Nginx em um bloco de servidor separado para cada versão do site. Também é recomendável evitar o redirecionamento do tráfego usando a direção if, que pode causar um comportamento incomum do servidor.



Redirecionar todo o tráfego de HTTP para HTTPS

Adicione as seguintes alterações ao arquivo de configuração Nginx para redirecionar todo o tráfego da versão HTTP para HTTPS:





servidor {
ouço 80servidor_padrão;
nome do servidor _;
Retorna 301https: //$ host$ request_uri;
}

Abaixo, elaboramos cada termo acima mencionado:

Listen 80 default_server - isso sinalizará ao seu sistema que captura todo o tráfego HTTP na porta 80.
Server_name _ - é o domínio que corresponderá a qualquer nome de host.



Retorne 301 https: // $ host $ request_uri - informa aos seus mecanismos de pesquisa que o redirecionam permanentemente. Ele especifica que a variável $ host contém os nomes de domínio.

Depois de alterar as configurações, você precisa recarregar os serviços Nginx em seu sistema. Portanto, recarregue seus serviços Nginx usando o seguinte comando:

$sudosystemctl reload nginx

Redirecionar HTTP para versão HTTPS para domínio especificado em Nginx

Depois de instalar o certificado SSL em seu domínio, você terá duas opções de blocos de servidor para este domínio. Um bloco é para a versão HTTP ouvindo na porta 80 e a segunda versão é HTTPS na porta 443. No entanto, para redirecionar um único domínio de site de HTTP para HTTPS, você precisa abrir a configuração Nginx. Você pode localizar esse arquivo de configuração no diretório / etc / nginx / sites-available. Em qualquer caso, se você não encontrou este arquivo, você pode procurá-lo com /etc/nginx/nginx.conf, / usr / local / nginx / conf ou / usr / local / etc / nginx, e então executar o seguintes alterações neste arquivo:

servidor {
ouço 80;
nome do servidor domain-name.com www.domain-name.com;
Retorna 301https://domain-name.com$ request_uri;
}

Vamos entender o código acima linha por linha.
Ouça 80 - usando a porta 80, o servidor ouvirá todas as conexões de entrada de domínio especificado.

Server_name domain-name.com www.domain-name.com - especifica os nomes de domínio. Portanto, substitua-o pelo nome de domínio do site que você deseja redirecionar.

Retorne 301 https: //domain-name.com$request_uri - move o tráfego para a versão HTTPS do site. A variável $ request_uri é usada para o URI de solicitação original completo, no qual os argumentos também estão incluídos.

Usando o método a seguir, você pode redirecionar o tráfego da versão HTTPS www para a versão não www do site. É recomendável criar um redirecionamento em um bloco de servidor separado para as versões não-www e www.

Vamos explicar com um exemplo. Se você deseja redirecionar as solicitações www HTTPS para a versão não www, siga a seguinte configuração:

servidor {
ouço 80;
nome do servidor domain-name.com www.domain-name.com;
Retorna 301https://domain-name.com$ request_uri;
}
servidor {
ouço 443 ssl http2;
nome do servidor www.domain-name.com;
# . . outro código
Retorna 301https://domain-name.com$ request_uri;
}
servidor {
ouço 443 ssl http2;
nome do servidor domain-name.com;

# . . outro código
}

Substitua o nome de domínio pelo seu domínio, como www.linuxhint.com.

Conclusão

Discutimos como redirecionar o tráfego da versão HTTP para o HTTPS no servidor Nginx. Ao alterar a configuração do arquivo de configuração Nginx, você pode redirecionar facilmente o tráfego para HTTPS para um domínio especificado ou redirecionar todos. Esse método, que mencionamos neste artigo, pode ajudá-lo a tornar seu site mais seguro, fazendo quaisquer alterações na experiência do usuário.