Black Friday: 50% OFF nas 3 primeiras mensalidades. Ver ofertas
Tutoriais

Como hospedar vários sites em um único VPS

Como hospedar vários sites em um único VPS

Um único VPS bem configurado pode hospedar dezenas de sites. O segredo está em isolar cada um para que um problema em um site não afete os outros.

O conceito: virtual hosts

O servidor web usa o nome do domínio requisitado (cabeçalho Host) para decidir qual site entregar. Todos os domínios apontam para o mesmo IP, e cada um tem sua própria configuração.

Estrutura recomendada

Para cada site:

  • Um usuário do sistema próprio;
  • Uma pasta própria;
  • Um pool PHP-FPM rodando com esse usuário;
  • Um banco de dados e usuário de banco próprios;
  • Um certificado SSL.

1. Crie o usuário e a pasta

sudo useradd -m -d /var/www/site1 -s /usr/sbin/nologin site1
sudo mkdir -p /var/www/site1/public
sudo chown -R site1:site1 /var/www/site1
sudo chmod 750 /var/www/site1
sudo usermod -aG site1 www-data   # permite ao Nginx ler os arquivos

2. Crie um pool PHP-FPM dedicado

/etc/php/8.3/fpm/pool.d/site1.conf (ajuste a versão):

[site1]
user = site1
group = site1
listen = /run/php/site1.sock
listen.owner = www-data
listen.group = www-data

pm = ondemand
pm.max_children = 10
pm.process_idle_timeout = 30s

php_admin_value[open_basedir] = /var/www/site1:/tmp
php_admin_value[upload_max_filesize] = 64M
php_admin_value[post_max_size] = 64M

O modo ondemand é ótimo para muitos sites com pouco tráfego: processos só são criados quando há requisições.

sudo systemctl restart php8.3-fpm

3. Configure o Nginx

/etc/nginx/sites-available/site1.com.br:

server {
    listen 80;
    server_name site1.com.br www.site1.com.br;
    root /var/www/site1/public;
    index index.php index.html;

    access_log /var/log/nginx/site1.access.log;
    error_log  /var/log/nginx/site1.error.log;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/site1.sock;
    }
}
sudo ln -s /etc/nginx/sites-available/site1.com.br /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

4. Banco de dados

CREATE DATABASE site1 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'site1'@'localhost' IDENTIFIED BY 'SENHA_FORTE';
GRANT ALL PRIVILEGES ON site1.* TO 'site1'@'localhost';

5. SSL

sudo certbot --nginx -d site1.com.br -d www.site1.com.br

Repita os passos para site2, site3...

Bloqueando acessos pelo IP

Evite que o primeiro site responda a requisições para domínios desconhecidos ou pelo IP:

server {
    listen 80 default_server;
    server_name _;
    return 444;
}

Prefere uma interface gráfica?

Painéis como HestiaCP, CloudPanel, CyberPanel e aaPanel automatizam tudo isso: criação de usuários, pools, bancos e SSL com poucos cliques.

Dicas de gestão

  • Backups por site, facilitando restaurações individuais;
  • Monitore o consumo de cada pool (htop filtrando por usuário);
  • Logs separados por site facilitam diagnósticos;
  • Dimensione o VPS pela soma dos picos, com folga.

Conclusão

Consolidar sites em um VPS reduz custos e simplifica a gestão — desde que cada site esteja isolado. Com um VPS-BR da VittHost, todos os seus sites ganham NVMe e servidores no Brasil.Use o cupom SP-VITT20 e ganhe 20% de desconto na primeira fatura enquanto a promoção estiver ativa.

Compartilhar:

Black Friday: 50% OFF nas 3 primeiras mensalidades

Em VPS no Brasil, enquanto houver estoque, até 30/11/2026. O botão de cada plano já leva o cupom ao carrinho.

Ver as ofertas