Introdução
O Nginx é um servidor web gratuito e de código aberto usado para hospedar sites e aplicativos de todos os tamanhos. O software é conhecido por seu baixo impacto nos recursos de memória, alta escalabilidade e sua arquitetura modular e orientada a eventos, que pode oferecer desempenho seguro e previsível. Mais do que apenas um servidor web, o Nginx também funciona como um balanceador de carga, um cache HTTP e um proxy reverso.
Neste guia, você instalará o Nginx em seu servidor Debian 10.
Pré-requisitos
Antes de começar este guia, você deve ter um usuário regular, não-root, com privilégios de sudo configurados em seu servidor. Você também deve ter um firewall ativo. Você pode aprender como configurar isso seguindo nosso guia de configuração inicial do servidor para Debian 10.
Passo 1 – Instalando o Nginx
O Nginx está disponível nos repositórios de software padrão do Debian, tornando possível instalá-lo a partir de ferramentas convencionais de gerenciamento de pacotes.
Primeiro, atualize seu índice de pacotes local para refletir as últimas mudanças do upstream:
Em seguida, instale o pacote nginx
:
Confirme a instalação, digitando Y
, em seguida, pressione Enter
para prosseguir. O apt
então irá instalar o Nginx e quaisquer dependências necessárias no seu servidor.
Passo 2 – Ajustando o Firewall
Antes de testar o Nginx, é necessário modificar as configurações do firewall para permitir acesso externo às portas web padrão. Supondo que você seguiu as instruções nos pré-requisitos, você deve ter um firewall UFW configurado para restringir o acesso ao seu servidor.
Durante a instalação, o Nginx se registra com o UFW para fornecer alguns perfis de aplicativos que podem ser usados para habilitar ou desabilitar o acesso ao Nginx através do firewall.
Liste os perfis de aplicativos ufw
digitando:
Você deve obter uma lista dos perfis de aplicativos:
OutputAvailable applications:
...
Nginx Full
Nginx HTTP
Nginx HTTPS
...
Como você pode ver, existem três perfis disponíveis para o Nginx:
- Nginx Completo: Este perfil abre tanto a porta
80
(tráfego web normal, não criptografado) quanto a porta443
(tráfego criptografado TLS/SSL) - Nginx HTTP: Este perfil abre apenas a porta
80
(tráfego web normal, não criptografado) - Nginx HTTPS: Este perfil abre apenas a porta
443
(tráfego criptografado TLS/SSL)
É recomendável que você habilite o perfil mais restritivo que ainda permitirá o tráfego que você configurou. Como você ainda não configurou o TLS/SSL para o seu servidor neste guia, você só precisará permitir o tráfego para HTTP na porta 80
.
Você pode habilitar isso digitando:
Você pode verificar a mudança digitando:
O que aparece são o tráfego HTTP permitido na saída:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
Passo 3 – Verificando seu Servidor Web
Ao final do processo de instalação, o Debian 10 inicia o Nginx. O servidor web já deverá estar em funcionamento.
Você pode verificar com o sistema de inicialização systemd
para garantir que o serviço está em execução digitando:
Output● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-06-28 18:42:58 UTC; 49s ago
Docs: man:nginx(8)
Main PID: 2729 (nginx)
Tasks: 2 (limit: 1167)
Memory: 7.2M
CGroup: /system.slice/nginx.service
├─2729 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2730 nginx: worker process
Esta saída revela que o serviço foi iniciado com sucesso. No entanto, a melhor maneira de testar isso é solicitar realmente 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 souber o endereço IP do seu servidor, pode digitar isso no prompt de comando do seu servidor:
Você receberá algumas linhas de retorno. Você pode tentar cada uma no seu navegador da web para ver se funcionam.
Quando tiver o endereço IP do seu servidor, insira-o na barra de endereços do seu navegador:
http://your_server_ip
A página de destino padrão do Nginx deve aparecer em seu navegador da web:
Esta página está incluída com o Nginx para mostrar que o servidor está funcionando corretamente.
Passo 4 – Gerenciando o Processo do Nginx
Agora que você tem seu servidor web funcionando, você pode revisar alguns comandos básicos de gerenciamento.
Para parar seu servidor web, digite:
Para iniciar o servidor web quando estiver parado, digite:
Para parar e depois iniciar o serviço novamente, digite:
Se você estiver fazendo alterações de configuração, o Nginx frequentemente pode recarregar sem desconectar as conexões. Para fazer isso, digite:
Por padrão, o Nginx está configurado para iniciar automaticamente quando o servidor é inicializado. Se isso não for o que você deseja, você pode desabilitar esse comportamento digitando:
Para reabilitar o serviço para iniciar na inicialização, você pode digitar:
Passo 5 – Configurando Blocos de Servidor (Opcional)
Ao usar o servidor web Nginx, blocos de servidor (semelhantes a hosts virtuais no Apache) podem ser usados para encapsular detalhes de configuração e hospedar mais de um domínio em um único servidor. Nos comandos a seguir, substitua your_domain
pelo nome do seu próprio domínio. Para aprender mais sobre configurar um nome de domínio com DigitalOcean, veja nossa introdução ao DNS do DigitalOcean.
O Nginx no Debian 10 tem um bloco de servidor habilitado por padrão que está configurado para servir documentos de um diretório em /var/www/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 /var/www/html
, crie uma estrutura de diretórios dentro de /var/www
para o site your_domain
, mantendo /var/www/html
como o diretório padrão a ser servido se uma solicitação do cliente não corresponder a outros sites.
Crie o diretório para your_domain
da seguinte forma, usando a flag -p
para criar quaisquer diretórios pai necessários:
A seguir, atribua a propriedade do diretório com a variável de ambiente $USER
, que deve referenciar seu usuário atual do sistema:
As permissões da sua raiz web devem estar corretas se você não modificou o valor de seu umask
, mas você pode ter certeza digitando:
A seguir, crie uma página index.html
de exemplo usando nano
ou seu editor de texto preferido:
Por dentro, 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. No nano
, você pode fazer isso pressionando CTRL + X
, depois Y
, e então ENTER
.
Para que o Nginx sirva este conteúdo, você deve criar um bloco de servidor com as diretivas corretas que apontem para sua raiz web personalizada. Em vez de modificar diretamente o arquivo de configuração padrão, crie um novo em /etc/nginx/sites-available/seu_domínio
:
Adicione o seguinte bloco de configuração, que é semelhante ao padrão, mas atualizado para seu novo diretório e nome de domínio:
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 a configuração atualizada de root
para seu novo diretório e o server_name
para seu nome de domínio. Lembre-se de substituir seu_domínio
pelo seu nome de domínio real.
Em seguida, habilite este bloco de servidor criando um link simbólico para seu arquivo de configuração personalizada dentro do diretório sites-enabled
, que o Nginx lê durante a inicialização:
Seu servidor agora tem dois blocos de servidor habilitados e configurados para responder a solicitações com base em suas diretivas listen
e server_name
(você pode ler mais sobre como o Nginx processa essas diretivas aqui):
seu_domínio
: Responderá a solicitações paraseu_domínio
ewww.seu_domínio
.padrão
: Responderá a quaisquer solicitações na porta80
que não correspondam aos outros dois blocos.
Para evitar um possível problema de memória do bucket de hash que pode surgir ao adicionar nomes de servidor adicionais à sua configuração, é necessário ajustar um único valor no arquivo /etc/nginx/nginx.conf
. Abra o arquivo:
Encontre a diretiva server_names_hash_bucket_size
e remova o símbolo #
para descomentar a linha:
...
http {
...
server_names_hash_bucket_size 64;
...
}
...
Salve e feche o arquivo quando terminar.
Em seguida, teste para garantir que não haja erros de sintaxe em nenhum dos seus arquivos Nginx:
Se não houver problemas, a seguinte saída será exibida:
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Depois que o teste de configuração passar, reinicie o Nginx para habilitar suas alterações:
O Nginx agora deve estar servindo seu nome de domínio. Você pode testar isso navegando para http://seu_domínio
. O HTML personalizado que você criou na pasta /var/www/seu_domínio/html/index.html
deve ser renderizado aqui:
Passo 6 – Se Familiarizando com Diretórios e Arquivos Importantes do Nginx
Agora que você sabe como gerenciar o serviço Nginx em si, pode dedicar um tempo para se familiarizar com alguns diretórios e arquivos importantes.
Conteúdo
/var/www/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/var/www/html
. Isso pode ser alterado modificando 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/sites-available/
: O diretório onde blocos de servidor por site podem ser armazenados. O Nginx não usará os arquivos de configuração encontrados neste diretório a menos que estejam vinculados ao diretóriosites-enabled
. Tipicamente, toda a configuração de bloco de servidor é feita neste diretório e, em seguida, habilitada vinculando-a ao outro diretório./etc/nginx/sites-enabled/
: O diretório onde blocos de servidor por site habilitados são armazenados. Tipicamente, esses são criados vinculando a arquivos de configuração encontrados no diretóriosites-available
./etc/nginx/snippets
: Este diretório contém fragmentos de configuração que podem ser incluídos em outros lugares na configuração do Nginx. Segmentos de configuração potencialmente repetíveis são bons candidatos para refatoração em snippets.
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.
Conclusão
Agora que você tem seu servidor web instalado, você tem muitas opções para o tipo de conteúdo que pode servir e as tecnologias que pode usar para criar uma experiência mais rica para seus usuários.
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-debian-10