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 desites disponíveis
aohabilitado 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.