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.
O que você precisa
- Um VPS com pelo menos 1 vCPU e 1 GB de RAM (nossos planos básicos bastam para a maioria dos sites pequenos).
- Um nome de domínio apontado para o endereço IP do servidor (veja o nosso guia sobre como apontar um domínio para um VPS).
- Acesso SSH como usuário sudo. Se o servidor for novo, faça primeiro o reforço básico de segurança.
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.
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/defaulte recarregue.