Introdução

O Nginx é um dos servidores Web mais populares no mundo e é responsável por hospedar alguns dos sites de maior tráfego na Internet. Ele é mais amigável do que o Apache em termos de recursos na maioria dos casos e pode ser usado como um servidor Web ou como proxy reverso.

Neste guia, vamos explicar como instalar o Nginx no seu servidor Ubuntu 20.04. Para uma versão mais detalhada deste tutorial, consulte How To Install Nginx on Ubuntu 20.04

Passo 1 — Como instalar o Nginx

nginx illustration for: Passo 1 — Como instalar o Nginx

Uma vez que o Nginx está disponível nos repositórios padrão do Ubuntu, instale-o utilizando o sistema de empacotamento apt.

Atualize seu índice de pacotes local:

				
					
sudo apt update

				
			

Instale o Nginx:

				
					
sudo apt install nginx

				
			

Passo 2 — Como ajustar o Firewall

Se seguiu o tutorial pré-requisito de configuração do servidor, então você tem o firewall UFW ativado. Verifique os perfis de aplicativo ufw disponíveis com o seguinte comando:

				
					
sudo ufw app list

				
			
				
					
[secondary_label Output]

Available applications:

  Nginx Full

  Nginx HTTP

  Nginx HTTPS

  OpenSSH

				
			

Vamos habilitar o perfil mais restritivo que ainda permitirá o tráfego que você configurou, permitindo o tráfego na porta 80:

				
					
sudo ufw allow 'Nginx HTTP'

				
			

Verifique a mudança:

				
					
sudo ufw status

				
			
				
					
[secondary_label Output]

Status: active



To                         Action      From

--                         ------      ----

OpenSSH                    ALLOW       Anywhere                  

Nginx HTTP                 ALLOW       Anywhere                  

OpenSSH (v6)               ALLOW       Anywhere (v6)             

Nginx HTTP (v6)            ALLOW       Anywhere (v6)

				
			

Passo 3 — Como verificar seu Servidor Web

Verifique com o sistema init systemd para garantir que o serviço esteja funcionando digitando:

				
					
systemctl status nginx

				
			
				
					
[secondary_label Output]

nginx.service - A high performance web server and a reverse proxy server

     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset:>

     Active: active (running) since Mon 2020-05-04 22:45:26 UTC; 1min 17s ago

       Docs: man:nginx(8)

   Main PID: 13255 (nginx)

      Tasks: 2 (limit: 1137)

     Memory: 4.6M

     CGroup: /system.slice/nginx.service

             ├─13255 nginx: master process /usr/sbin/nginx -g daemon on; master>

             └─13256 nginx: worker process

				
			

Acesse a página inicial padrão do Nginx para confirmar que o software está funcionando corretamente através do seu endereço IP:

				
					
http://<^>your_server_ip<^>

				
			

Você deve receber a página inicial padrão do Nginx:

Passo 4 — Como configurar os blocos de servidor (recomendado)

Ao usar o servidor Web Nginx, os _server blocks_ (similares aos hosts virtuais no Apache) podem ser usados para encapsular detalhes de configuração e hospedar mais de um domínio de um único servidor. Vamos configurar um domínio chamado your_domain, mas você deve substituí-lo por seu próprio nome de domínio. Para aprender mais sobre como configurar um nome de domínio com a the cloud provider, por favor, consulte nossa Introdução ao DNS da the cloud provider.

Crie o diretório para <^>your_domain<^>, utilizando a flag -p para criar todos os diretórios pais necessários:

				
					
sudo mkdir -p /var/www/&lt;^&gt;your_domain&lt;^&gt;/html

				
			

Atribua a posse do diretório:

				
					
sudo chown -R $USER:$USER /var/www/&lt;^&gt;your_domain&lt;^&gt;/html

				
			

As permissões dos Web roots devem estar corretas se ainda não tiver modificado seu valor umask, mas você pode certificar-se digitando:

				
					
sudo chmod -R 755 /var/www/&lt;^&gt;your_domain&lt;^&gt;

				
			

Crie uma página de amostra index.html utilizando o nano ou seu editor favorito:

				
					
nano /var/www/&lt;^&gt;your_domain&lt;^&gt;/html/index.html

				
			

Dentro, adicione a seguinte amostra HTML:

				
					
[label /var/www/your_domain/html/index.html]

&lt;html&gt;

    &lt;head&gt;

        &lt;title&gt;Welcome to &lt;^&gt;your_domain&lt;^&gt;!&lt;/title&gt;

    &lt;/head&gt;

    &lt;body&gt;

        &lt;h1&gt;Success!  The &lt;^&gt;your_domain&lt;^&gt; server block is working!&lt;/h1&gt;

    &lt;/body&gt;

&lt;/html&gt;

				
			

Salve e feche o arquivo quando você terminar.

Crie um novo bloco de servidor em /etc/nginx/sites-available/<^>your_domain<^>:

				
					
sudo nano /etc/nginx/sites-available/&lt;^&gt;your_domain&lt;^&gt;

				
			

Cole no seguinte bloco de configuração, atualizado para nosso novo diretório e nome de domínio:

				
					
[label /etc/nginx/sites-available/your_domain]

server {

        listen 80;

        listen [::]:80;



        root /var/www/&lt;^&gt;your_domain&lt;^&gt;/html;

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



        server_name &lt;^&gt;your_domain&lt;^&gt; www.&lt;^&gt;your_domain&lt;^&gt;;



        location / {

                try_files $uri $uri/ =404;

        }

}

				
			

Salve e feche o arquivo quando terminar.

Habilite o arquivo criando um link dele para o diretório sites-enabled:

				
					
sudo ln -s /etc/nginx/sites-available/&lt;^&gt;your_domain&lt;^&gt; /etc/nginx/sites-enabled/

				
			

Agora, dois blocos de servidor estão habilitados e configurados para responder a pedidos baseados nas diretrizes listen e server_name:

  • your_domain: irá responder às solicitações para your_domain e www.your_domain.
  • default: responderá a quaisquer pedidos na porta 80 que não correspondam aos outros dois blocos.

Para evitar um possível problema de memória de hash que possa surgir ao adicionar nomes adicionais de servidor, é necessário ajustar um valor único no arquivo /etc/nginx/nginx.conf. Abra o arquivo:

				
					
sudo nano /etc/nginx/nginx.conf

				
			

Encontre a diretriz server_names_hash_bucket_size e remova o símbolo # para remover a marca de comentário da linha:

				
					
[label /etc/nginx/nginx.conf]

...

http {

    ...

    server_names_hash_bucket_size 64;

    ...

}

...

				
			

Teste para conferir se há erros de sintaxe:

				
					
sudo nginx -t

				
			

Reinicie o Nginx para habilitar suas alterações:

				
					
sudo systemctl restart nginx

				
			

O Nginx agora deve estar exibindo seu nome de domínio. Você pode testar isso navegando para http://<^>your_domain<^>, onde você deve ver algo assim:

Conclusão

Agora que tem seu servidor Web instalado, você tem muitas opções para o tipo de conteúdo a oferecer e as tecnologias que quiser usar para criar uma experiência mais rica.

Se você gostaria de construir uma pilha de aplicações mais completa, verifique este artigo how to configure a LEMP stack on Ubuntu 20.04