Pular para o conteúdo
Voltar para serviços

Projetos e proxy reverso

Muitos projetos e domínios em um mesmo servidor

Um servidor tem um só IP público, mas pode atender muitos domínios e projetos. O segredo é o proxy reverso: o nginx recebe todas as requisições e entrega cada uma ao seu projeto. O SERVILINUX configura isso para você.

Deslize o diagrama para ver inteiro

Seu servidor16 GB RAM · 4 vCPU◎api.tienda.com◎admin.tienda.com◎app.cliente.com◎www.cliente.com⌖203.0.113.10IP público :443⇄nginxproxy reverso🔒Let's EncryptHTTPS por domínio⬢AdonisJS · API127.0.0.1:3001⬢AdonisJS · admin127.0.0.1:3002⬢Node.js · app127.0.0.1:3003▤Site (PHP)/srv/apps/wwwMemória do servidorAdonisJS ×2 · 1 GBNode.js · 0,5 GBnginx + PHP · 0,3 GBBanco de dados · 2,2 GBLivre · 12 GBAdonisJS ×2 1 GBNode.js 0,5 GBnginx + PHP 0,3 GBBanco de dados 2,2 GBLivre 12 GB
  • api.tienda.com → AdonisJS
  • admin.tienda.com → AdonisJS
  • app.cliente.com → Node.js
  • www.cliente.com → site PHP

Cada cor segue um domínio: chega ao IP público, o nginx o reconhece pelo nome, coloca HTTPS e entrega ao seu projeto. Os apps escutam em portas locais que não são vistas da internet; o site é servido diretamente pelo nginx. Abaixo, quanta memória cada parte usa (aproximado).

Vários domínios, um só IP

Todos os domínios apontam para o mesmo IP público. O nginx lê o nome de cada requisição e a envia ao projeto certo; um projeto também pode ter vários domínios.

Cada app na sua porta, sem se expor

Os apps Node.js e AdonisJS escutam só em 127.0.0.1, cada um na sua porta. Da internet só ficam abertas a 80 e a 443, e tudo passa pelo nginx.

HTTPS grátis para cada domínio

O nginx guarda o certificado do Let’s Encrypt de cada domínio e o renova sozinho. Antes de pedi-lo, o SERVILINUX verifica se o domínio realmente chega ao seu servidor, também através de um proxy.

Cada projeto isolado e recuperável

Cada projeto tem seu próprio usuário do sistema, seu serviço com reinício automático e versões guardadas: se um deploy falhar, volta sozinho para a versão anterior.

Quantos projetos cabem em um servidor?

Depende principalmente da memória e do tráfego. Como referência:

MemóriaSites estáticos e PHP levesApps Node.js / AdonisJS
1 GB5 a 101 ou 2, sem banco de dados local
2 GB10 a 203 ou 4, com um banco de dados pequeno
4 GB20 ou mais6 a 8, com banco de dados
16 GBDezenas20 ou mais, com bancos de dados grandes

Números aproximados para tráfego moderado. Um projeto com muito tráfego pode precisar de um servidor só para ele; o Sentinel mostra a memória real que cada servidor usa.

No SERVILINUX

Como se faz

  1. 1
    Aponte seus domínios

    Registro A para o IP do servidor, ou use o domínio provisório grátis.

  2. 2
    Crie os projetos

    Estático, PHP, Node.js ou AdonisJS: cada um recebe sua porta e seu usuário.

  3. 3
    Faça deploy do git

    Manual ou automático a cada push, com volta atrás se algo falhar.

  4. 4
    Ative o HTTPS

    Um clique por domínio; o nginx fica configurado como proxy reverso.