OffshoreVps
Tutoriais14 out. 20269 min de leituraPor a equipe da OffshoreVps

Como hospedar um site em um VPS com Nginx e HTTPS

Instale o Nginx no Ubuntu, crie um bloco server, adicione um certificado gratuito do Let's Encrypt e deixe tudo mais rápido. Comandos para copiar e colar e ter um site no ar em 20 minutos.

A hospedagem compartilhada é fácil, mas um VPS dá velocidade, acesso root e nenhum vizinho barulhento. Este guia leva um servidor Ubuntu 24.04 ou 22.04 novo a um site HTTPS no ar usando o Nginx, em cerca de vinte minutos. Todos os comandos podem ser copiados como estão.

Janela de terminal em um VPS mostrando os comandos usados para hospedar um site com Nginx e HTTPS, começando com “sudo apt update”
O tipo de comandos que você executará no servidor neste guia.

O que você precisa

1. Instale o Nginx

sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx

Abra o endereço IP do seu servidor em um navegador. Você deve ver a página de boas-vindas padrão do Nginx. Se não, confira se o seu firewall permite as portas 80 e 443:

sudo ufw allow "Nginx Full"
sudo ufw status

2. Crie a pasta do site

sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com
echo "<h1>It works</h1>" > /var/www/example.com/html/index.html

Substitua example.com pelo seu próprio domínio em todos os lugares.

Os passos deste guia em ordem: 1. O que você precisa; 2. 1. Instalar o Nginx; 3. 2. Criar a pasta do site; 4. 4. Adicionar HTTPS gratuito com o Let's Encrypt; 5. 5. Deixá-lo mais rápido; 6. Problemas comuns
Os passos deste guia, em ordem.

3. Adicione um bloco server

sudo nano /etc/nginx/sites-available/example.com
server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;
    root /var/www/example.com/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

Ative-o, teste a configuração e recarregue:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

4. Adicione HTTPS gratuito com o Let's Encrypt

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com

O Certbot edita o seu bloco server, redireciona o HTTP para HTTPS e instala um timer que renova o certificado automaticamente. Verifique o timer com systemctl list-timers | grep certbot.

5. Deixe-o mais rápido

Ative a compressão e o cache do navegador para arquivos estáticos. Adicione isto dentro do bloco server:

gzip on;
gzip_types text/css application/javascript application/json image/svg+xml;

location ~* \.(css|js|png|jpg|jpeg|webp|svg|woff2)$ {
    expires 30d;
    add_header Cache-Control "public";
}

Recarregue o Nginx depois. Para sites dinâmicos como o WordPress, instale o PHP-FPM e passe a ele as requisições .php, ou coloque um plugin de cache na frente.

Problemas comuns

  • 403 Forbidden: o Nginx não consegue ler a pasta. Verifique a propriedade e se todos os diretórios pais são executáveis (chmod o+x).
  • O Certbot falha: o domínio ainda não aponta para o servidor, ou a porta 80 está bloqueada.
  • A página padrão continua aparecendo: remova /etc/nginx/sites-enabled/default e recarregue.