Nginx redireciona http para https

Nginx redireciona http para https
O nginx, pronunciado como "Engine X", é uma Web de alto desempenho baseada em linux de código aberto e um servidor de proxy reverso responsável por gerenciar e lidar com a carga dos maiores sites tráfego na Internet. O NGINX é uma poderosa ferramenta de redirecionamento que pode ser configurada facilmente em seu sistema para redirecionar o tráfego HTTP menos seguro ou não criptografado para um servidor web https criptografado e seguro. Se você é um administrador do sistema ou um desenvolvedor, está usando o servidor nginx regularmente.

Neste artigo, trabalharemos sobre como redirecionar o tráfego da web de HTTP para um HTTPS seguro no Nginx.

As respostas e solicitações são retornadas na forma de texto simples no HTTP, enquanto o HTTPS usa SSL/TLS para criptografar a comunicação entre o cliente e o sistema de servidor. Portanto, devido a muitos motivos, o HTTPS é usado no HTTP, listado abaixo:

  • Todos os dados entre o cliente-servidor em ambas as direções são criptografados. No entanto, alguém não pode acessar informações confidenciais se interceptado.
  • Quando você estiver usando o 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 será classificado melhor no Google, pois favorece todos os sites garantidos HTTPS.

É preferido 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 redirecionar o tráfego usando a direção "se" que possa causar comportamento incomum do servidor.

Redirecionar todo o tráfego de HTTP para HTTPS

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

servidor
Ouça 80 default_server;
nome do servidor _;
retornar 301 https: // $ host $ request_uri;

Abaixo, elaboramos cada termo acima mencionado:

Ouça 80 Default_server - Isso sinalizará seu sistema que captura todo o tráfego HTTP na porta 80.
Server_name _ - é o domínio que corresponderá a qualquer nome de host.

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

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

$ sudo systemctl recarregar nginx

Redirecionar a versão http para https para domínio especificado no 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 do NGINX. Você pode localizar este arquivo de configuração no diretório/etc/nginx/sites e disponíveis. De qualquer forma, se você não encontrar este arquivo, poderá pesquisá -lo com/etc/nginx/nginx.conf,/usr/local/nginx/conf ou/usr/local/etc/nginx e, em seguida, execute as seguintes alterações neste arquivo:

servidor
Ouça 80;
server_name domain-name.com www.nome do domínio.com;
retornar 301 https: // domínio-name.com $ request_uri;

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

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

Retornar 301 https: // domínio-name.com $ request_uri - ele move o tráfego para a versão https do site. A variável $ request_uri é usada para a solicitação original completa URI no qual os argumentos também estão incluídos.

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

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

servidor
Ouça 80;
server_name domain-name.com www.nome do domínio.com;
retornar 301 https: // domínio-name.com $ request_uri;

servidor
Ouça 443 SSL HTTP2;
Server_name www.nome do domínio.com;
#… Outro código
retornar 301 https: // domínio-name.com $ request_uri;

servidor
Ouça 443 SSL HTTP2;
server_name 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 do NGINX, você pode redirecionar facilmente o tráfego para HTTPS para um domínio especificado ou redirecionar tudo. Este 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.