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, explicamos como instalar o Nginx no seu servidor Ubuntu 18.04. Para uma versão mais detalhada deste tutorial, consulte Como Instalar o Nginx no Ubuntu 18.04.

Pré-requisitos

nginx illustration for: Pré-requisitos

Antes de iniciar este guia, você deve ter o seguinte:

  • Um servidor Ubuntu 18.04 e um usuário regular não-root com privilégios sudo. Além disso, você precisará habilitar um firewall básico para bloquear portas não essenciais. Você pode aprender como configurar uma conta de usuário comum e configurar um firewall seguindo nosso guia de configuração inicial de servidor para o Ubuntu 18.04.

Quando tiver uma conta disponível, logue com seu usuário não raiz para começar.

Passo 1 - Como instalar o Nginx

Uma vez que o Nginx está disponível nos repositórios padrão do Ubuntu, instale ele 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: enabled)

   Active: <^>active (running)<^> since Fri 2018-04-20 16:08:19 UTC; 3 days ago

     Docs: man:nginx(8)

 Main PID: 2369 (nginx)

    Tasks: 2 (limit: 1153)

   CGroup: /system.slice/nginx.service

           ├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;

           └─2380 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 ver a página inicial padrão do Nginx:

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

Ao usar o servidor Web Apache, é possível usar os _server blocks_ (similares aos hosts virtuais no Apache) para encapsular detalhes de configuração e hospedar mais de um domínio de um único servidor. Vamos configurar um domínio chamado example.com, mas você deve substituí-lo por seu próprio nome de domínio. Para aprender mais sobre configuração de um nome de domínio com o the cloud provider, veja nossa introdução ao DNS the cloud provider.

Crie o diretório para <^>example.com<^>, usando a flag -p para criar quaisquer diretórios parentais necessários:

				
					
sudo mkdir -p /var/www/&lt;^&gt;example.com&lt;^&gt;/html

				
			

Atribua a posse do diretório:

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

				
			

As permissões das suas raízes Web 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;example.com&lt;^&gt;

				
			

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

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

				
			

Dentro, adicione a seguinte amostra HTML:

				
					
[label /var/www/example.com/html/index.html]

&lt;html&gt;

    &lt;head&gt;

        &lt;title&gt;Welcome to &lt;^&gt;Example.com&lt;^&gt;!&lt;/title&gt;

    &lt;/head&gt;

    &lt;body&gt;

        &lt;h1&gt;Success!  The &lt;^&gt;example.com&lt;^&gt; server block is working!&lt;/h1&gt;

    &lt;/body&gt;

&lt;/html&gt;

				
			

Salve e feche o arquivo quando terminar.

Faça um novo bloco de servidor em /etc/nginx/sites-available/<^>example.com<^>:

				
					
sudo nano /etc/nginx/sites-available/&lt;^&gt;example.com&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/example.com]

server {

        listen 80;

        listen [::]:80;



        root /var/www/&lt;^&gt;example.com&lt;^&gt;/html;

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



        server_name &lt;^&gt;example.com&lt;^&gt; www.&lt;^&gt;example.com&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;example.com&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:

  • example.com: Responderá aos pedidos para example.com e www.example.com.
  • 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 atendendo seu nome de domínio. É possível testar isso ao navegar para http://<^>example.com<^>, onde você deve ver algo parecido com isso:

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 quiser construir uma pilha de aplicativo mais completa, verifique este artigo sobre como configurar uma pilha LEMP no Ubuntu 18.04.