Como instalar o Nginx no Ubuntu 20.04 LTS

Guia passo a passo completo para instalar e configurar um servidor da web Nginx em um sistema Ubuntu 20.04

Nginx é um servidor da Web de proxy reverso de código aberto popular, disponível em várias plataformas. O software foi desenvolvido por Igor Sysoev como uma solução para o problema do C10K e lançado pela primeira vez em 2004. O problema do C10K é o problema de lidar com dez mil clientes ao mesmo tempo, o que não era fácil no início dos anos 2000.

Neste tutorial, veremos como instalar e configurar o Nginx no Ubuntu 20.04 LTS.

Pré-requisitos

Um sistema com Ubuntu 20.04 instalado e um sudo do utilizador. Além disso, você não precisa ter nenhum outro servidor web, como o Apache em execução na porta 80 ou 443.

Instalando o Nginx

Nginx está disponível no repositório Ubuntu 20.04 e apto o gerenciador de pacotes pode ser usado para instalá-lo. Então, para instalar o Nginx, abra o terminal usando ctrl + alt + t e corra:

sudo apt update && sudo apt install nginx

A instalação será concluída em breve e o daemon Nginx será iniciado em segundo plano automaticamente. Portanto, para verificar o status do Nginx, execute:

sudo systemctl status nginx

Depois de executar o comando acima, você deve obter o status do Nginx como ativo (em execução) em verde como visto abaixo.

Configurando o Ubuntu Firewall (UFW)

Por padrão, as portas de saída HTTP (80) e HTTPS (443) são fechadas no Ubuntu 20.04. Além disso, o daemon de firewall padrão ufw é desativado porque todas as portas estão fechadas.

Assim, para acessar o servidor Nginx de outros sistemas, você precisará habilitar o ufw e configurá-lo corretamente para permitir o tráfego na porta 80 e 443. Antes de habilitar ufw, saiba que se você estiver configurando o Nginx em um servidor remoto, primeiro atualize o ufw regras para permitir ssh Correndo:

sudo ufw permitir ssh

O comando acima permite o ssh acesso ao servidor remoto, sem permitir ssh você ficará bloqueado no servidor remoto.

Depois de habilitar ssh acesso, você pode habilitar o ufw daemon de firewall executando:

sudo ufw enable

Agora, você precisa alterar as regras de firewall para permitir as portas HTTP e HTTPS para que o Nginx possa atender ao tráfego da web. Para alterar as regras, execute:

sudo ufw allow 'Nginx Full'

Nginx Full permite portas HTTP e HTTPS para tráfego de entrada e saída de todos os endereços IP.

Depois disso, verifique se as regras foram adicionadas corretamente ao ufw firewall executando o comando:

sudo ufw status

O comando acima irá mostrar as regras que adicionamos ao ufw daemon de firewall.

Conectando ao servidor Nginx

Agora que instalamos o Nginx e configuramos ufw para permitir a entrada de tráfego da web HTTP e HTTPS, você deve ser capaz de acessar o servidor Nginx usando o endereço IP do servidor.

Se você não souber o endereço IP do servidor, use o comando abaixo para recuperá-lo facilmente.

ip addr show eth0 | grep inet | awk '{imprimir $ 2; } '| sed 's /\/.*$//'

Depois de obter o endereço IP, cole-o no navegador e pressione Enter.

// ip-do-seu-servidor

Se tudo estiver configurado corretamente, você verá a página da web ‘Bem-vindo ao nginx!’.

Arquivos e diretórios Nginx

Agora que temos o Nginx instalado e funcionando em seu servidor. Vamos dar uma olhada em alguns dos arquivos e diretórios Nginx importantes que você terá que usar para configurar seu site / aplicativo da web.

Conteúdo do servidor web

Você pode configurar qualquer local que quiser como diretório raiz para o bloco de servidor. O HTML padrão do Nginx é diretamente / var / www / html, é onde a página de "boas-vindas" que acessamos anteriormente está localizada.

Outros locais que geralmente são usados ​​como diretório raiz para domínios incluem:

  • /casa//
  • / var / www / html /
  • /optar/

Arquivos de configuração Nginx

Todos os arquivos de configuração do Nginx estão localizados em / etc / nginx diretório. Vejamos alguns dos arquivos importantes de que precisamos para configurar um domínio básico.

  • /etc/nginx/nginx.conf: Este arquivo contém toda a configuração necessária para executar o Nginx.
  • / etc / nginx / sites-available /: Este diretório tem toda a configuração de bloco de servidor de domínios, mas atualmente não está habilitado / implantado e, portanto, não está acessível aos clientes.
  • / etc / nginx / sites-enabled /: Este diretório contém domínios atualmente ativos / habilitados acessíveis aos clientes. Para habilitar um domínio, precisamos vincular o arquivo de configuração de domínio de sites disponíveis ao habilitado para sites diretório.
  • / etc / nginx / snippets/: Neste diretório, podemos armazenar segmentos de configuração potencialmente reutilizáveis. Economiza muito tempo no ambiente de produção devido ao fato de poder tornar segmentos / blocos de configuração reutilizáveis.

Logs do servidor

Nginx registra os eventos / atividades e os armazena em arquivos de log no / var / log / nginx diretório. O Nginx registra atividades nestes arquivos:

  • /var/log/nginx/access.log: Este arquivo registra os clientes que acessaram o servidor Nginx. Os detalhes incluem o endereço IP do cliente, hora e data, navegador usado para acessar o servidor e o sistema operacional.
  • /var/log/nginx/error.log: Este arquivo registra os erros encontrados pelo servidor Nginx durante a execução.

Portanto, nesta seção, vimos brevemente alguns dos arquivos e diretórios Nginx importantes que são suficientes para começar.

Configurando Blocos de Servidor

Agora que temos algum conhecimento básico sobre arquivos e servidor Nginx, estamos prontos para configurar nosso próprio bloco de servidor. Os blocos de servidor são semelhantes aos hosts virtuais Apache.

Veremos como criar um bloco de servidor e demonstrar que usaremos example.com como domínio no processo de criação.

💡 Substitua example.com com o seu nome de domínio.

Antes de começarmos a configurar os blocos de servidor, precisamos criar um diretório para servir como diretório raiz para o conteúdo do site. Vamos criar /var/www/example.com/html diretório para domínio usando mkdir comando.

sudo mkdir -p /var/www/example.com/html

O -p opção criará todos os diretórios pai necessários. Ou seja, vai criar example.com um diretório pai para html se não existir.

Altere a propriedade do diretório com o $ USUÁRIO variável de ambiente:

sudo chown -R $ USER: $ USER /var/www/example.com/html

Em seguida, crie um simples index.html arquivo que será acessado quando você visitar o domínio que está sendo configurado. Isso é apenas para fins explicativos.

nano /var/www/example.com/html/index.html

Cole o seguinte conteúdo no arquivo que acabamos de criar no servidor.

  Bem-vindo a example.com! 

Ei! O example.com está acessível!

pressione ctrl + o para escrever e salvar o index.html arquivo e, em seguida, pressione ctrl + x sair nano editor.

Agora, finalmente, podemos passar para a criação de um bloco de servidor, para que o Nginx possa servir o index.html quando algum usuário vai para example.com. Então, para criar um bloco de servidor, precisamos fazer um arquivo de configuração chamado example.com dentro sites disponíveis diretório. Para fazer isso, usamos o nano e executamos:

sudo nano /etc/nginx/sites-available/example.com

Em seguida, digite ou copie / cole a seguinte configuração. Então aperte ctrl + o e digite para escrever e salvar. Da mesma forma, pressione ctrl + x para fechar o editor nano.

servidor {escuta 80; ouvir [::]: 80; server_name example.com www.example.com; root /var/www/example-domain.com/html; index index.html; localização / {try_files $ uri $ uri / = 404; }}

A configuração acima é semelhante à configuração de bloco de servidor padrão, nós mudamos raiz declaração para apontar para o nosso novo diretório raiz e mudou o nome do servidor ao nosso nome de domínio. Enquanto o localização{} instrução serve como instrução de captura de erro se os arquivos não forem encontrados e exibe o erro 404 para o cliente.

Em seguida, podemos habilitar nosso bloco de servidor para que o Nginx sirva example.com paginas web. Para habilitar nosso bloco de servidor, precisamos criar um link simbólico de example.com arquivo de sites disponíveis para habilitado para sites diretório. Para fazer isso, execute:

sudo ln -s /etc/nginx/sites-available/example.com / etc / nginx / sites-enabled

Um link será criado em habilitado para site diretório e agora example.com deve ser habilitado. Agora temos dois blocos de servidor habilitados em nosso servidor Nginx que responderá à solicitação com base em ouço e sever_name diretivas salvas em example.com configuração de bloco de servidor.

Para verificar se todos os arquivos de configuração estão corretos e nenhum erro de sintaxe está presente, execute:

sudo nginx -t

Agora, finalmente reinicie o Nginx para aplicar as alterações executando o seguinte comando:

sudo systemctl restart nginx

Nginx vai começar a servir seu bloco de servidor agora, você pode ir para // nome-do-seu-dominio e veja sua página da web ao vivo.

Observação: Para que a seção acima funcione, você precisará configurar seu próprio domínio e substituir example.com com seu próprio nome de domínio. Além disso, você terá que configurar o DNS do seu domínio para apontar para o endereço IP do seu servidor Nginx.

Para concluir, vimos como instalar o Nginx, configurar ufw para permitir acesso remoto ao servidor Nginx, conectado ao Nginx remotamente, familiarizou-se com alguns arquivos e diretórios básicos do Nginx e aprendeu a configurar um bloco de servidor.

Para saber e aprender mais sobre o Nginx, você pode querer ver o wiki do Nginx.