Tutorial

Como Instalar o Nginx no Ubuntu 20.04 [Quickstart]

Published on May 21, 2020
Default avatar

By Erin Glass

Senior Manager, DevEd

Português
Como Instalar o Nginx no Ubuntu 20.04 [Quickstart]

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

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:

  1. sudo apt update

Instale o Nginx:

  1. 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:

  1. sudo ufw app list
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:

  1. sudo ufw allow 'Nginx HTTP'

Verifique a mudança:

  1. sudo ufw status
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:

  1. systemctl status nginx
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:

Nginx default page

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 DigitalOcean, por favor, consulte nossa Introdução ao DNS da DigitalOcean.

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

  1. sudo mkdir -p /var/www/your_domain/html

Atribua a posse do diretório:

  1. sudo chown -R $USER:$USER /var/www/your_domain/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:

  1. sudo chmod -R 755 /var/www/your_domain

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

  1. nano /var/www/your_domain/html/index.html

Dentro, adicione a seguinte amostra HTML:

/var/www/your_domain/html/index.html
<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Success!  The your_domain server block is working!</h1>
    </body>
</html>

Salve e feche o arquivo quando você terminar.

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

  1. sudo nano /etc/nginx/sites-available/your_domain

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

/etc/nginx/sites-available/your_domain
server {
        listen 80;
        listen [::]:80;

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

        server_name your_domain www.your_domain;

        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:

  1. sudo ln -s /etc/nginx/sites-available/your_domain /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:

  1. 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:

/etc/nginx/nginx.conf
...
http {
    ...
    server_names_hash_bucket_size 64;
    ...
}
...

Teste para conferir se há erros de sintaxe:

  1. sudo nginx -t

Reinicie o Nginx para habilitar suas alterações:

  1. 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:

Nginx first server block

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

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors
Default avatar

Senior Manager, DevEd

Open source advocate and lover of education, culture, and community.

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel