Pesquisa de site

Como instalar o servidor Web Nginx no Ubuntu 20.04


Nginx é um servidor web de código aberto e de alto desempenho que possui uma enorme participação de mercado em ambientes de produção. É um servidor web leve e robusto, usado principalmente na hospedagem de sites de alto tráfego.

Leitura relacionada: Como instalar o servidor Web Apache no Ubuntu 20.04

Neste guia, você aprenderá como instalar o servidor web Nginx e configurar o bloco do servidor Nginx (hosts virtuais) no Ubuntu 20.04 LTS.

Pré-requisitos

Para começar, certifique-se de ter uma instância do Ubuntu 20.04 LTS com acesso SSH e um usuário Sudo com privilégios de root. Além disso, é recomendada uma conexão estável com a Internet para instalar pacotes Nginx.

Instalando Nginx no Ubuntu 20.04

1. Antes de instalar o Nginx, atualize as listas de pacotes do seu servidor.

sudo apt update

2. Em seguida, instale o Nginx executando o comando:

sudo apt install nginx

Quando solicitado a continuar, pressione 'Y' no teclado e pressione ENTER. A instalação será feita em apenas alguns segundos.

3. Com o Nginx instalado com sucesso, você pode iniciá-lo e verificá-lo executando:

sudo systemctl start nginx
sudo systemctl status nginx

A saída acima indica claramente que o Nginx está em execução.

4. Para verificar a versão do Nginx, execute:

sudo dpkg -l nginx

A saída indica que estamos executando o Nginx 1.17.10, que é a versão mais recente no momento em que este artigo foi escrito.

Abra portas Nginx no firewall UFW

Agora que você tem o Nginx instalado e funcionando conforme o esperado, alguns ajustes são necessários para que o Nginx seja acessado por meio de um navegador da web. Se você estiver executando o firewall UFW, precisará permitir o perfil do aplicativo Nginx.

Existem 3 perfis Nginx associados ao firewall ufw.

  1. Nginx Full – Abre as portas 80 e 443 (para criptografia SSL/TLS).
  2. Nginx HTTP – Esta porta aberta apenas 80 (para tráfego da web não criptografado).
  3. Nginx HTTPS – Abre apenas a porta 443 (para criptografia SSL/TLS).

5. Comece habilitando o firewall no Ubuntu 20.04.


sudo ufw enable

6. Por enquanto, como não estamos em um servidor criptografado, permitiremos apenas o perfil Nginx HTTP que permitirá o tráfego na porta 80 .

sudo ufw allow 'Nginx HTTP'

7. Em seguida, recarregue o firewall para que as alterações persistam.

sudo ufw reload

8. Agora verifique o status do firewall para verificar os perfis que foram permitidos.

sudo ufw status

Testando o Nginx no Ubuntu 20.04

Nginx é executado no navegador como seria de esperar de qualquer servidor web e a maneira mais segura de testar se está funcionando conforme o esperado é enviar solicitações por meio de um navegador.

9. Então acesse seu navegador e procure o endereço IP ou nome de domínio do servidor. Para verificar o IP do seu servidor, execute o comando ifconfig:

ifconfig

10. Se você estiver em um servidor em nuvem, execute o comando curl abaixo para recuperar o IP público do servidor.

curl ifconfig.me

11. No campo URL do seu navegador, digite o endereço IP ou nome de domínio do seu servidor e pressione ENTER.

http://server-IP or domain-name

Você deve obter uma página de boas-vindas padrão do Nginx conforme mostrado.

Gerenciar processo Nginx no Ubuntu 20.04

12. Para parar o servidor web Nginx, simplesmente execute:

sudo systemctl stop nginx

13. Para ativar o servidor web novamente, execute:

sudo systemctl start nginx

14. Para iniciar automaticamente o Nginx na inicialização ou na reinicialização:

sudo systemctl enable nginx

15. Se você deseja reiniciar o servidor web, especialmente depois de fazer alterações nos arquivos de configuração, execute:

sudo systemctl restart nginx

16. Como alternativa, você pode recarregar para evitar a queda de conexões, conforme mostrado.

sudo systemctl reload nginx

Configurando o bloco de servidor Nginx no Ubuntu 20.04

Se você planeja hospedar mais de um site em seu servidor, é altamente recomendável configurar um bloco de servidor Nginx. O bloco server é equivalente ao host virtual do Apache.

Por padrão, o Nginx vem com seu bloco de servidor padrão, que é configurado para servir conteúdo da web no caminho /var/www/html.

Criaremos um bloco Nginx separado para servir o conteúdo do nosso domínio. Para este guia, usaremos o domínio crazytechgeek.info.
Para o seu caso, certifique-se de substituir isso pelo seu próprio nome de domínio.

17. Para criar um arquivo de bloco de servidor, primeiro crie um diretório para seu domínio conforme mostrado.

sudo mkdir -p /var/www/crazytechgeek.info/html

18. Em seguida, atribua a propriedade ao novo diretório usando a variável $USER.

sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html

19. Certifique-se de também atribuir permissões de diretório adequadamente, permitindo que o proprietário tenha todas as permissões (leitura, gravação e execução) e concedendo a outras partes apenas permissões de leitura e execução.

sudo chmod -R 755 /var/www/crazytechgeek.info

20. Dentro do diretório do domínio, crie um arquivo index.html que conterá o conteúdo web do domínio.

sudo vim /var/www/crazytechgeek.info/html/index.html

Cole o conteúdo abaixo no arquivo de teste de amostra.

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Bravo! Your server block is working as expected!</h1>
    </body>
</html>

Salve as alterações e saia do arquivo.

21. Para que o servidor web Nginx sirva o conteúdo que você acabou de adicionar, você precisa criar um bloco de servidor com as diretivas apropriadas. Neste caso, criamos um novo bloco de servidor em:

sudo vim /etc/nginx/sites-available/crazytechgeek.info

Cole a configuração mostrada.

server {
        listen 80;
        listen [::]:80;

        root /var/www/crazytechgeek.info/html;
        index index.html index.htm index.nginx-debian.html;

        server_name crazytechgeek.info  www.crazytechgeek.info;

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

Salvar e sair.

22. Agora habilite o arquivo de bloco do servidor vinculando-o ao diretório sites-enabled do qual o servidor Nginx lê na inicialização.

sudo ln -s /etc/nginx/sites-available/crazytechgeek.info /etc/nginx/sites-enabled/

23. Para que as alterações sejam efetuadas, reinicie o servidor web Nginx.

sudo systemctl restart nginx

24. Apenas para ter certeza de que todas as configurações estão em ordem, execute o comando:

nginx -t

Se todas as configurações estiverem em ordem, você deverá obter a saída mostrada abaixo:

25. O servidor web Nginx agora deve servir o conteúdo do seu domínio. Mais uma vez, acesse seu navegador e navegue no domínio do seu servidor.

http://domain-name

Seu conteúdo personalizado no diretório do seu domínio será veiculado conforme mostrado.

Arquivos importantes de configuração do Nginx

Antes de encerrarmos, é crucial examinarmos alguns dos arquivos de configuração importantes associados ao Nginx.

Arquivos de configuração Nginx

  • /etc/nginx/nginx.conf: Este é o arquivo de configuração principal. Você pode modificar as configurações para atender aos requisitos do seu servidor.
  • /etc/nginx/sites-available: Este é o diretório que armazena a configuração do bloco do servidor. O Nginx só usa os blocos do servidor se eles estiverem vinculados ao diretório habilitado para sites.
  • /etc/nginx/sites-enabled: o diretório contém blocos de servidor Nginx por site que já estão habilitados.

Arquivos de log Nginx

Existem dois arquivos de log principais que você pode usar para solucionar problemas do seu servidor web Nginx:

  • /var/log/nginx/access.log: registra todas as solicitações feitas ao servidor web.
  • /var/log/nginx/error.log: Este é o arquivo de log de erros e registra todos os erros que o Nginx encontra.
Conclusão

Chegamos ao final deste tutorial. Mostramos como você pode instalar o Nginx no Ubuntu 20.04 e como configurar blocos de servidor Nginx para servir o conteúdo do seu domínio. Seu feedback é bem-vindo.