Como instalar o nginx no Ubuntu e pôr o seu site a abrir a partir de uma pasta

Num VPS com Ubuntu, instala-se o nginx com sudo apt install nginx, cria-se um ficheiro de site em /etc/nginx/sites-available/ que aponta para a sua pasta, activa-se com uma ligação em sites-enabled, testa-se com sudo nginx -t e recarrega-se. E o site abre. Este artigo é para um VPS não gerido com acesso root: o que corre lá dentro é seu, e o nosso suporte não instala nem repara o nginx (veja até onde vai o nosso suporte).

Os comandos abaixo são para Debian e Ubuntu. Em AlmaLinux ou Rocky Linux muda o instalador (dnf) e a pasta da configuração; está na tabela mais abaixo. Segundo o seu sistema, confirme sempre com a documentação da própria distribuição.

Instalar e pôr o site a abrir

1 Actualize a lista de pacotes e instale. sudo apt update e depois sudo apt install nginx. O serviço arranca sozinho e fica ligado para os próximos arranques.
2 Abra as portas 80 e 443 se tiver uma firewall activa (no Ubuntu, sudo ufw allow 80/tcp e sudo ufw allow 443/tcp). Sem isto, o site só abre dentro do próprio servidor. Veja portas e firewall num VPS e configurar o ufw sem se trancar fora.
3 Ponha o site numa pasta. Por exemplo /var/www/seudominio.tld/public, com um index.html de ensaio dentro. Crie-a com sudo mkdir -p /var/www/seudominio.tld/public.
4 Crie o ficheiro do site com sudo nano /etc/nginx/sites-available/seudominio.tld e este conteúdo:server {
listen 80;
server_name seudominio.tld www.seudominio.tld;
root /var/www/seudominio.tld/public;
index index.html index.php;

location / {
try_files $uri $uri/ =404;
}
}
5 Active-o e retire o site de boas-vindas. sudo ln -s /etc/nginx/sites-available/seudominio.tld /etc/nginx/sites-enabled/. A ligação sites-enabled/default pode ficar ou sair; se o nome do seu pedido não coincidir com nenhum server_name, é a página do nginx que aparece.
6 Teste a configuração antes de recarregar. sudo nginx -t tem de dizer “syntax is ok” e “test is successful”. Só então sudo systemctl reload nginx. Recarregar não corta as ligações que já estão abertas; reiniciar corta.
7 Aponte o domínio para o servidor. O registo A do domínio e o do www têm de ter o IP do VPS (veja onde está o IP do seu VPS e apontar um domínio para o seu VPS). Para testar antes de a DNS propagar, use o ficheiro hosts: testar um site antes de mudar a DNS.

Se o site tem PHP

O nginx não executa PHP sozinho: entrega-o ao PHP-FPM. Instale-o (no Ubuntu, sudo apt install php-fpm) e acrescente ao bloco server um location ~ \.php$ com include snippets/fastcgi-php.conf; e um fastcgi_pass que aponte para o socket do PHP-FPM. O nome do socket leva a versão do PHP, por isso veja o que existe com ls /run/php/ em vez de o copiar de um guia. Um “502 Bad Gateway” aqui costuma ser um socket com o nome errado ou um PHP-FPM parado.

Debian e Ubuntu, ou AlmaLinux e Rocky

Debian e Ubuntu AlmaLinux e Rocky Linux
Instalar apt install nginx dnf install nginx e depois systemctl enable --now nginx
Onde ficam os sites /etc/nginx/sites-available e sites-enabled /etc/nginx/conf.d/nome.conf
Utilizador do serviço www-data nginx
Firewall ufw firewalld: firewall-cmd --permanent --add-service=http
Registos /var/log/nginx/access.log e error.log os mesmos
No AlmaLinux e no Rocky, o SELinux pode bloquear o nginx sem nenhuma mensagem no site: ele não lê pastas com a etiqueta errada. Se o ficheiro existe e as permissões estão certas mas continua “403”, veja quando o SELinux ou o AppArmor bloqueiam um serviço. E se o 403 for de permissões normais, permissões de ficheiros num VPS.
O primeiro sítio onde olhar é o registo de erros: sudo tail -n 30 /var/log/nginx/error.log. Diz quase sempre o que está mal (ficheiro inexistente, permissão negada, socket inexistente).

O servidor não responde nem a um ping, ou perdeu o acesso por SSH ao mexer na firewall? Isso vemos do nosso lado.

Abrir um pedido de suporte

VEJA TAMBÉM

Instalar o Apache e criar um virtual host

Vários sites no mesmo VPS

Redirecionar para HTTPS e para o domínio sem www

Portas e firewall num VPS

PRODUTO RECOMENDADO

Alojamento de sites com cPanel

Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 321,75 MT/mês (plano de 3 anos, com cupão)

Ver planos
  • 0 Utilizadores acharam útil
Esta resposta foi útil?