Tutorial

Como instalar o Nginx no CentOS 8

Published on April 9, 2020
Default avatar

By Erika Heidi

Developer Advocate

Português
Como instalar o Nginx no CentOS 8

Introdução

O Nginx é um dos servidores Web mais populares no mundo e é responsável por hospedar alguns dos maiores e mais populares sites 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 discutir como instalar o Nginx em um servidor CentOS 8.

Pré-requisitos

Para seguir este guia, você precisará de acesso a um servidor CentOS 8 como um usuário não raiz com privilégios sudo, e um firewall ativo instalado no seu servidor. Para configurar isso, siga nosso guia Configuração inicial de servidor para o CentOS 8.

Passo 1 — Como instalar o servidor Web Nginx

Para instalar o Nginx, usaremos o gerenciador de pacotes dnf, que é o novo gerenciador de pacotes padrão no CentOS 8.

Instale o pacote nginx com:

  1. sudo dnf install nginx

Quando solicitado, digite y para confirmar se deseja instalar o nginx. Depois disso, o dnf instalará o Nginx e quaisquer dependências necessárias em seu servidor.

Após a instalação terminar, execute os seguintes comandos para habilitar e iniciar o servidor:

  1. sudo systemctl enable nginx
  2. sudo systemctl start nginx

Isso fará com que o Nginx seja iniciado na inicialização do sistema.

Passo 2 — Ajustando as regras de firewall

Caso tenha habilitado o firewall firewalld como mostrado em nosso guia de configuração inicial de servidor para o CentOS 8, você precisará ajustar as configurações do firewall, de modo a permitir conexões externas em seu servidor Web Nginx, que utiliza a porta 80 por padrão.

Execute o seguinte comando para habilitar permanentemente as conexões HTTP na porta 80:

  1. sudo firewall-cmd --permanent --add-service=http

Para verificar se o serviço de firewall http foi adicionado corretamente, execute:

  1. sudo firewall-cmd --permanent --list-all

Você verá um resultado como esse:

Output
public target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client http ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

Para aplicar as alterações, você precisará recarregar o serviço de firewall:

  1. sudo firewall-cmd --reload

Agora, seu servidor Nginx está completamente instalado e pronto para ser acessado por visitantes externos.

Passo 3 — Verificando seu Servidor Web

Agora, você pode testar se o servidor Web Nginx está em funcionamento, acessando o endereço IP público do seu servidor ou nome de domínio pelo navegador Web.

Nota: caso esteja usando a DigitalOcean como seu provedor de hospedagem DNS, verifique nossos docs de produto para instruções detalhadas sobre como configurar um novo nome de domínio e apontá-lo para seu servidor.

Se você não tiver um nome de domínio apontando no seu servidor e você não sabe o endereço IP público do seu servidor, é possível encontrá-lo executando o seguinte comando:

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

Isso irá mostrar na tela alguns endereços IP. Você pode testar cada um deles em seu navegador Web.

Como uma alternativa, verifique qual endereço IP está acessível, como visto por outras locações na internet:

  1. curl -4 icanhazip.com

Digite o endereço que receber no seu navegador Web e ele irá levá-lo para a página inicial do Nginx:

Configuração padrão do Nginx do CentOS 8

Caso veja essa página, então seu servidor Web está agora corretamente instalado.

Passo 4 — Gerenciando o processo do Nginx

Agora que você tem seu servidor Web em funcionamento, vamos rever como gerenciar o serviço Nginx por meio do systemctl.

Sempre que você precisa parar seu servidor Web, utilize:

  1. sudo systemctl stop nginx

Para iniciar o servidor quando ele for parado, digite:

  1. sudo systemctl start nginx

Para parar e então iniciar o serviço novamente, use:

  1. sudo systemctl restart nginx

O Nginx também pode recarregar as alterações de configuração sem interromper as conexões. Para fazer isso, digite:

  1. sudo systemctl reload nginx

Por padrão, o Nginx está configurado para iniciar automaticamente quando o servidor for iniciado. Se isso não é o que você deseja, é possível desativar este comportamento digitando:

  1. sudo systemctl disable nginx

Para reativar o serviço e fazer o Nginx iniciar novamente na inicialização, utilize:

  1. sudo systemctl enable nginx

Passo 5 — Familiarizando-se com arquivos e diretórios importantes do Nginx

Agora que sabe como gerenciar o serviço do Nginx, você deve gastar alguns minutos para familiarizar-se com alguns diretórios e arquivos importantes.

Conteúdo

  • /usr/share/nginx/html: O conteúdo Web em si, que por padrão apenas consiste na página Nginx padrão que você viu antes, é disponibilizado fora do diretório /usr/share/nginx/html. Isso pode ser alterado mudando os arquivos de configuração do Nginx.

Configuração do Servidor

  • /etc/nginx: o diretório de configuração do Nginx. Todos os arquivos de configuração do Nginx residem aqui.
  • /etc/nginx/nginx.conf: o arquivo de configuração principal do Nginx. Isso pode ser modificado para fazer alterações na configuração global do Nginx.
  • /etc/nginx/conf.d/: este diretório contém arquivos de configuração de bloco de servidor, onde é possível definir os sites que estão hospedados dentro do Nginx. Uma abordagem típica é ter cada site em um arquivo separado cujo nome provém do domínio do site, como o your_domain.conf.

Registros do Servidor

  • /var/log/nginx/access.log: cada pedido ao seu servidor Web é registrado neste arquivo de registro a menos que o Nginx esteja configurado para fazer de outra maneira.
  • /var/log/nginx/error.log: qualquer erro do Nginx será gravado neste registro.

Passo 6 — Configurando os blocos do servidor (Opcional)

Caso você queira hospedar vários sites dentro do mesmo servidor Web Nginx, você precisará configurar os blocos de servidor. Os blocos do servidor do Nginx funcionam de maneira semelhante aos hosts virtuais do Apache, permitindo que um único servidor responda a vários nomes de domínios e atenda diferentes conteúdos para cada um deles. No CentOS 8, os blocos de servidor são definidos em arquivos .conf localizados em /etc/nginx/conf.d.

Vamos configurar um bloco de servidor para um domínio chamado your_domain. Para aprender mais sobre como configurar um nome de domínio com o DigitalOcean, veja nossa Introdução ao DNS do DigitalOcean.

Por padrão, o Nginx no CentOS 8 está configurado para disponibilizar documentos vindos de um diretório em /usr/share/nginx/html. Enquanto isso funciona bem para um único site, isso se torna difícil de gerenciar se você estiver hospedando vários sites. Em vez de modificar o /usr/share/nginx/html, vamos criar uma estrutura de diretórios dentro do /var/www para o site your_domain, deixando o /usr/share/nginx/html no lugar como o diretório padrão para ser disponibilizado se um pedido de cliente não corresponder a nenhum outro site.

Crie o diretório para o your_domain da seguinte forma, utilizando o sinalizador -p para criar quaisquer diretórios pai necessários:

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

Em seguida, atribua a propriedade do diretório com a variável de ambiente $USER, que deve fazer referência ao seu usuário de sistema atual:

  1. sudo chown -R $USER:$USER /var/www/your_domain/html

Em seguida, vamos criar uma página de amostra index.html para testar a configuração de bloco de servidor. O editor de texto padrão que vem com o CentOS 8 é o vi. O vi é um editor de texto extremamente poderoso, mas pode ser de difícil uso para usuários com pouca experiência com ele. Talvez queira instalar um editor mais amigável para o usuário, como o nano, para facilitar a edição de arquivos de configuração no seu servidor CentOS 8:

  1. sudo dnf install nano

Agora, utilize o nano para criar o arquivo de amostra index.html:

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

Dentro desse arquivo, adicione o seguinte código HTML:

/var/www/your_domain/html/index.html
<html>
    <head>
        <title>Welcome to your_domain</title>
    </head>
    <body>
        <h1>Success! Your Nginx server is successfully configured for <em>your_domain</em>. </h1>
<p>This is a sample page.</p>
    </body>
</html>

Salve e feche o arquivo quando você terminar. Se você usou o nano, você pode fazer isso pressionando CTRL + X, Y e, em seguida, ENTER.

Para que o Nginx disponibilize esse conteúdo, precisamos criar um bloco de servidor com as diretrizes corretas que apontam para nossa raiz Web personalizada. Criaremos um novo bloco de servidor em /etc/nginx/conf.d/your_domain.conf:

  1. sudo nano /etc/nginx/conf.d/your_domain.conf

Cole o seguinte bloco de configuração:

/etc/nginx/conf.d/your_domain.conf
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 de editar o conteúdo.

Para garantir que não haja erros de sintaxe em qualquer um dos seus arquivos Nginx, execute:

  1. sudo nginx -t

Se não houver problemas, você verá o seguinte resultado:

Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Assim que seu teste de configuração passar, reinicie o Nginx para habilitar suas alterações:

  1. sudo systemctl restart nginx

Antes de poder testar as alterações do seu navegador, você precisará atualizar os contextos de segurança SELinux do seu servidor para que o Nginx possa disponibilizar o conteúdo do diretório /var/www/your_domain.

O seguinte comando permitirá que sua raiz de documento personalizada seja disponibilizada como conteúdo HTTP:

  1. chcon -vR system_u:object_r:httpd_sys_content_t:s0 /var/www/your_domain/

Agora, você pode testar sua configuração de domínio personalizada, navegando para http://your_domain, onde verá algo como isto:

Bloco de servidor Nginx

Essa página está renderizando o código HTML que definimos na raiz de documento personalizada criada para o bloco de servidor. Se você é capaz de ver essa página, significa que seu servidor Nginx está configurado corretamente para atender seu domínio.

Conclusão

Neste guia, vimos como instalar e configurar o Nginx, um servidor Web de alto desempenho e também o proxy reverso. Revisamos a forma como gerenciar o serviço Nginx em execução em seu servidor e quais são os diretórios principais usados pelo Nginx para armazenar arquivos de configuração, conteúdo e registros.

A partir daqui, você tem muitas opções para o tipo de conteúdo e as tecnologias que você possa querer usar nos sites hospedados dentro do seu servidor Web.

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

Developer Advocate

Dev/Ops passionate about open source, PHP, and Linux.

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