Introdução
O Nginx é um dos servidores web mais populares do mundo e é responsável por hospedar alguns dos maiores e mais movimentados sites na internet. É uma escolha leve que pode ser usada tanto como servidor web quanto como proxy reverso.
Neste guia, você irá aprender como instalar o Nginx no seu servidor Rocky Linux 9, ajustar o firewall, gerenciar o processo do Nginx e configurar blocos de servidor para hospedar mais de um domínio a partir de um único servidor.
Pré-requisitos
Antes de começar este guia, você deve ter um usuário regular, não root, com privilégios sudo configurado no seu servidor. Você pode aprender como configurar uma conta de usuário regular seguindo nosso Guia de configuração inicial do servidor para Rocky Linux 9.
Também é opcional que você tenha registrado um nome de domínio antes de concluir os últimos passos deste tutorial. Para saber mais sobre como configurar um nome de domínio com o DigitalOcean, consulte nosso Introdução ao DigitalOcean DNS.
Quando tiver uma conta disponível, faça login como seu usuário não root para começar.
Passo 1 – Instalando o Nginx
Como o Nginx está disponível nos repositórios padrão do Rocky, você pode instalá-lo com um único comando, utilizando o gerenciador de pacotes dnf
.
Instale o pacote nginx
com o comando dnf install
:
- sudo dnf install nginx
Quando solicitado, digite y
para confirmar que deseja instalar o nginx
. Depois disso, o dnf
irá instalar o Nginx e quaisquer dependências necessárias em seu servidor.
Após a instalação ser concluída, execute os seguintes comandos para habilitar e iniciar o servidor web:
- sudo systemctl enable nginx
- sudo systemctl start nginx
Isso fará com que o Nginx reinicie automaticamente sempre que o servidor for reiniciado. Seu novo servidor web deve estar funcionando agora, mas antes de testá-lo, provavelmente você precisará fazer uma alteração na configuração do seu firewall.
Passo 2 – Ajustando o Firewall
Se você habilitou o firewall firewalld
como parte do guia de configuração inicial do servidor para o Rocky Linux 9, você precisará ajustar as configurações do firewall para permitir conexões externas no seu servidor web Nginx, que opera na porta 80
por padrão.
Execute o seguinte comando para habilitar permanentemente as conexões HTTP na porta 80
:
- sudo firewall-cmd --permanent --add-service=http
Para verificar se o serviço de firewall http
foi adicionado corretamente, você pode executar:
- sudo firewall-cmd --permanent --list-all
Você verá uma saída semelhante a esta:
Outputpublic
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, será necessário recarregar o serviço de firewall:
- sudo firewall-cmd --reload
Seu servidor web deve agora ser acessível a visitantes externos.
Passo 3 – Verificando seu Servidor Web
Neste ponto, seu servidor web deve estar funcionando.
Você pode usar o comando systemctl status
para garantir que o serviço esteja em execução:
- systemctl status nginx
Output● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2022-09-14 21:03:46 UTC; 7min ago
Process: 18384 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Process: 18385 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 18386 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Main PID: 18387 (nginx)
Tasks: 3 (limit: 10938)
Memory: 2.8M
CPU: 43ms
CGroup: /system.slice/nginx.service
├─18387 "nginx: master process /usr/sbin/nginx"
├─18388 "nginx: worker process"
└─18389 "nginx: worker process"
Conforme confirmado por esta saída, o serviço foi iniciado com sucesso. No entanto, a melhor maneira de testar isso é solicitar uma página do Nginx.
Você pode acessar a página inicial padrão do Nginx para confirmar que o software está funcionando corretamente, navegando até o endereço IP do seu servidor. Se você não conhece o endereço IP do seu servidor, pode encontrá-lo usando a ferramenta icanhazip.com, que fornecerá seu endereço IP público conforme recebido de outra localização na Internet:
- curl -4 icanhazip.com
Quando tiver o endereço IP do seu servidor, insira-o na barra de endereços do seu navegador:
http://your_server_ip
Você deve receber a página inicial padrão do Nginx:
Se você estiver nesta página, seu servidor está funcionando corretamente e está pronto para ser gerenciado.
Passo 4 – Gerenciando o Processo Nginx
Agora que você tem seu servidor web funcionando, vamos revisar alguns comandos de gerenciamento de serviço.
Para parar seu servidor web, use systemctl stop
:
- sudo systemctl stop nginx
Para iniciar o servidor web quando estiver parado, use systemctl start
:
- sudo systemctl start nginx
Para parar e depois iniciar o serviço novamente, use systemctl restart
:
- sudo systemctl restart nginx
Se você estiver apenas fazendo alterações de configuração, o Nginx frequentemente pode recarregar sem perder conexões. Para fazer isso, use systemctl reload
:
- sudo systemctl reload nginx
Anteriormente neste tutorial, você configurou o Nginx para iniciar automaticamente quando o servidor é inicializado. Você pode desabilitar esse comportamento usando systemctl disable
:
- sudo systemctl disable nginx
Para reabilitar o serviço para iniciar na inicialização, você pode digitar:
- sudo systemctl enable nginx
Passo 5 – Familiarizando-se com Arquivos e Diretórios Importantes do Nginx
Agora que você sabe como gerenciar o serviço Nginx, você deve dedicar alguns minutos para se familiarizar com alguns diretórios e arquivos importantes.
Conteúdo
/usr/share/nginx/html
: O conteúdo web real, que por padrão consiste apenas na página padrão do Nginx que você viu anteriormente, é servido a partir do diretório/usr/share/nginx/html
. Isso pode ser alterado ao modificar 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 principal de configuração 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 blocos de servidor, onde você pode definir os sites hospedados no Nginx. Uma abordagem típica é ter cada site em um arquivo separado com o nome do domínio do site, comoseu_domínio.conf
.
Registros do Servidor
/var/log/nginx/access.log
: Cada solicitação ao seu servidor web é registrada neste arquivo de log, a menos que o Nginx esteja configurado de outra forma./var/log/nginx/error.log
: Quaisquer erros do Nginx serão registrados neste log.
Agora você deve estar pronto para configurar o site para hospedar um ou mais domínios.
Passo 6 – Configurando Blocos de Servidor (Opcional)
Ao usar o servidor web Nginx, os blocos de servidor (semelhantes aos hosts virtuais no Apache) podem ser usados para organizar detalhes de configuração e hospedar mais de um domínio a partir de um único servidor. No Rocky Linux 9, os blocos de servidor são definidos em arquivos .conf
localizados em /etc/nginx/conf.d
. Vamos configurar um domínio chamado seu_domínio
, mas você deve substituir isso pelo seu próprio nome de domínio.
Por padrão, o Nginx no Rocky Linux 9 está configurado para servir documentos de um diretório em /usr/share/nginx/html
. Embora isso funcione bem para um único site, pode se tornar difícil de gerenciar se você estiver hospedando vários sites. Em vez de modificar /usr/share/nginx/html
, você criará uma estrutura de diretórios dentro de /var/www
para o site seu_domínio, deixando /usr/share/nginx/html
no lugar como o diretório padrão a ser servido se uma solicitação do cliente não corresponder a nenhum outro site.
Crie o diretório para seu_domínio da seguinte forma, usando a flag -p
para criar quaisquer diretórios pai necessários:
- sudo mkdir -p /var/www/your_domain/html
Próximo, atribua a propriedade do diretório com a variável de ambiente $USER
, que deve referenciar o usuário do sistema atual:
- sudo chown -R $USER:$USER /var/www/your_domain/html
Agora, você criará uma página de exemplo index.html
para testar a configuração do bloco do servidor. O editor de texto padrão que vem com o Rocky Linux 9 é o vi
. O vi
é um editor de texto extremamente poderoso, mas pode ser um pouco confuso para usuários sem experiência. Você pode querer instalar um editor mais amigável, como o nano
, para facilitar a edição de arquivos de configuração no seu servidor Rocky Linux 9:
- sudo dnf install nano
Em seguida, crie uma página de exemplo index.html
usando o nano
ou o seu editor favorito:
- nano /var/www/your_domain/html/index.html
No interior, adicione o seguinte HTML de exemplo:
<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 terminar. Se estiver usando o nano
, você pode salvar e sair pressionando CTRL + X
, então, quando solicitado, Y
e depois Enter.
Para que o Nginx sirva esse conteúdo, será necessário criar um bloco de servidor com diretivas que apontem para o seu diretório web personalizado. Crie um novo bloco de servidor em /etc/nginx/conf.d/seu_domínio.conf
:
- sudo nano /etc/nginx/conf.d/your_domain.conf
Cole o seguinte bloco de configuração:
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;
}
}
Observe que atualizamos a configuração do root
para o nosso novo diretório e o server_name
para o nome do nosso domínio. Salve e feche o arquivo.
Dois blocos de servidor estão agora habilitados e configurados para responder a pedidos com base em suas diretrizes listen
e server_name
(você pode ler mais sobre como o Nginx processa essas diretrizes aqui):
seu_domínio
: Responderá a pedidos paraseu_domínio
ewww.seu_domínio
.padrão
: Responderá a quaisquer pedidos na porta 80 que não correspondam aos outros dois blocos.
Em seguida, teste para garantir que não haja erros de sintaxe em nenhum de seus arquivos Nginx, usando nginx -t
:
- sudo nginx -t
Se não houver problemas, reinicie o Nginx para habilitar suas alterações:
- sudo systemctl restart nginx
Antes de testar as alterações pelo navegador, você precisará atualizar os contextos de segurança SELinux do seu servidor para permitir que o Nginx sirva conteúdo do diretório /var/www/seu_domínio
.
Esta atualização de contexto chcon
permitirá que seu diretório de documentos personalizado seja servido como conteúdo HTTP:
- chcon -vR system_u:object_r:httpd_sys_content_t:s0 /var/www/your_domain/
O Nginx deve estar agora servindo o nome do seu domínio. Você pode testar isso navegando para http://seu_domínio
, onde você deverá ver algo assim:
Conclusão
Agora que você tem seu servidor web instalado, você tem muitas opções para o tipo de conteúdo a servir e as tecnologias que deseja usar para criar uma experiência mais rica.
Para configurar o HTTPS para o nome de domínio com um certificado SSL gratuito usando o Let’s Encrypt, você deve avançar para Como Segurar o Nginx com Let’s Encrypt no Rocky Linux 9.
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-rocky-linux-9