• Home

    Escolha seu Plano

    Carreiras Alura

    Evolua com profundidade técnica, direção clara e aplicação prática.

    Jornadas guiadas do básico ao avançado com checkpoints práticos, desenhadas para quem busca profundidade e protagonismo técnico.

    Iniciante

    Comece do zero com uma trilha clara e progressiva.

    Fundamentos práticos para dar os primeiros passos com segurança e construir uma base sólida.

    Intermediário

    Continue sua evolução com cursos que conectam fundamentos, ferramentas e prática profissional. Ganhe autonomia, e avance para projetos mais completos.

    Avançado

    Aprofunde temas técnicos e estratégicos para enfrentar desafios mais complexos. Explore boas práticas, arquitetura, performance com visão profissional.

    Cursos

    Ver mais cursos de Back-end
    • Pensamento computacional: fundamentos da computação e lógica de programação
    • Lógica de programação: mergulhe em programação com JavaScript
    • DDD: fundamentos do design orientado a domínio
    • ASP.NET: autenticação e autorização em APIs e aplicações web
    • Microsserviços: migração de monólitos e modularização

    Cursos

    Ver mais cursos de Dados
    • Python para Dados: primeiros passos
    • Excel: domine o editor de planilhas
    • Engenharia de Dados: Orquestração de Pipelines com Apache Airflow
    • Power BI Desktop: construindo meu primeiro dashboard
    • Governança e Arquitetura de Dados

    Cursos

    Ver mais cursos de Inteligência Artificial
    • IA: Explorando o Potencial da Inteligência Artificial Generativa
    • Engenharia de Prompt: Criando Prompts Eficazes para IA Generativa
    • Claude para Análise de Dados: prompts, integrações e automações
    • Agno: criando agentes e sistemas multiagente
    • Engenharia de software na era da IA: segurança de aplicações com agentes, MCPs e código gerado por IA

    Cursos

    Ver mais cursos de Front-end
    • HTML e CSS: ambiente, estrutura e estilo
    • React: realizando testes avançados com Jest e Testing Library
    • React: integrando TypeScript em projetos
    • JavaScript: aprendendo a programar
    • React: aplicando arquiteturas de Micro frontends

    Cursos

    Ver mais cursos de DevOps
    • Sistema Operacional Linux: fundamentos e administração prática
    • Containers e Docker: empacotamento, isolamento e gestão
    • Redes: dos conceitos iniciais à criação de uma intranet
    • Linux: gerenciando diretórios, arquivos, permissões e processos
    • Cibersegurança: Fundamentos e práticas integradas

    Cursos

    Ver mais cursos de UX & Design
    • UX Research: mapeando a experiência da pessoa usuária
    • UX/UI Design: Entregando produtos digitais com IA
    • UI Design: Prototipação e animações interativas
    • Figma: Conhecendo o programa
    • Product Design: métricas e ciclo de vida do produto

    Cursos

    Ver mais cursos de Gestão & Negócios
    • Canva: Criação de landing pages e e-mail marketing
    • Agilidade: como ela pode ajudar a criar um time de alta performance
    • Google Analytics 4: Extrair insights e configurar eventos
    • Management 3.0: gerencie o ambiente, não as pessoas
    • Automação de processos com n8n: Inteligência de dados para Marketing

    Cursos

    Ver mais cursos de Mobile
    • React Native: Estilização e Layouts com Flexbox e StyleSheet
    • Flutter: Graphql e suporte offline
    • Android com Gemini: Trabalhando com textos e imagens na IA
    • Dart: trabalhando com orientação a objetos
    • React Native: Dominando Listas com FlatList e ScrollView

    Carreiras

    Ver mais carreiras
    • Especialista em IA
    • Engenharia de IA
    • Ai native software engineering
    • Arquitetura de Soluções com IA
    • AI Product Design
    • Engenharia de Machine Learning
    • Desenvolvimento Front-End React
    • Engenharia de Dados
    • Cloud Security
    • Social Media Marketing
    • Engenharia de Agentes de IA

    Cursos

    • Engenharia de Prompt: Prompts Eficazes para IA Generativa
    • Claude Code: Criando sua Primeira Aplicação
    • Python: Crie sua Primeira Aplicação
    • Git e GitHub: Compartilhando e Colaborando
    • N8N: Fluxos de Trabalho Avançados

    Cursos

    • Copilot Studio: Solução Multiagentes
    • Padrões de API HTTP e Modelagem de APIs
    • Python para Análise de Dados com SQL
    • Docker: Criando e Gerenciando Containers
    • Design com IA: Otimizando o Processo Criativo

    Cursos

    • Model Context Protocol (MCP)
    • Spec-Driven Development: Dev Assistido por Agentes
    • Arquitetura de Sistemas Distribuídos com Java
    • Governança de Modelos e Reprodutibilidade
    • Pentest: Vulnerabilidades em Aplicações Web

    Escolha seu Plano

    Skills & Go

    O Skills & Go é para Tech Leads, Product Managers, estrategistas e early adopters que transformam ideias em soluções de alto impacto. Em cursos ao vivo e 100% online, você domina a nova era da IA em tempo real.

    Aulas ao vivo

    Saiba mais
    • Agentic Engineering: orquestre múltiplos agentes com confiabilidade
    • Building AI Products: transforme ideias em produtos reais com IA
    • AI Data Strategy: transforme dados em decisões estratégicas com IA

    Escolha seu Plano

    Eventos Alura

    Nossos eventos são pensados para quem quer estar à frente das mudanças em tecnologia, IA e inovação. Em experiências presenciais, você acompanha tendências e se conecta com especialistas que estão moldando o futuro.

    Próximos eventos

    • Imersão Engenharia de Software: Dev na Era da IA
    • IA Conference
    • Alura Signals
  • Talent Lab
  • IA

    Escolha seu Plano

    Conteúdos gratuitos

    Explore conteúdos gratuitos para aprender tecnologia no seu ritmo. Encontre artigos com conteúdos técnicos para aprender na prática, notícias para acompanhar as principais tendências do mercado e o Alura Labs, com análises e reflexões de especialistas sobre tecnologia, IA e carreira.

    Conteúdos gratuitos

    • Artigos
    • Notícias
    • Alura Labs
  • Para Empresas
Ver planos
Links principais
  • Planos e Promoções
  • Links complementares do menu mobile
  • Talent lab
  • Inteligência Artificial
  • Pós Graduações
  • Para Empresas
  • Sobre a Alura
  • Grupo Alun
  • Entrar
    • Home
    • Carreiras
    • Skills & Go
    • Talent Lab
    • Inteligência Artificial
    • Pós Graduações
    • Artigos
    • Sobre a Alura
    • Grupo Alun
    LoginContato
    • LinkedIn
    • Instagram
    • YouTube
    1. Página inicial
    2. DevOps
    3. Virtual Hosts, virtualizando vários sites em um mesmo servidor

    Virtual Hosts, virtualizando vários sites em um mesmo servidor

    7 min7 minutos de leitura

    7 min7 minutos de leitura

    Publicado: 03/09/2017

    1. Entendendo os Virtual Hosts
    2. Configurando o Apache
    3. Configurando Subdomínios
    4. Boas Práticas
    5. Para saber mais
    6. Pontos de atenção
    7. Conclusão

    Precisei virtualizar dois sites diretamente de um servidor Apache, atualmente temos a seguinte arquitetura nos servidores:

    Note que temos apenas um sistema operacional com um Apache instalado que, por padrão, só roda um site de cada vez.

    Então como hospedar mais de um site, se existe apenas uma máquina?

    Uma possibilidade é utilizar um virtualizador, como o VMware, que possibilita que outros sistemas operacionais rodem em uma única máquina, e colocar para rodar dois servidores virtuais:

    Assim continuaríamos com uma máquina física, porém com dois servidores virtuais. Cada um para um site:

    Porém teriamos que configurar o software de virtualização, instalar novamente o sistema operacional do servidor e configurar dois servidores. Além da virtualização consumir mais recursos do hardware.

    Em outras palavras, o custo para o consumidor ficaria mais caro, já que precisaria investir um pouco mais de tempo em melhorias no hardware.

    Bem, para evitar isso, existe um recurso que nos permite virtualizar vários sites diretamente do mesmo servidor utilizando o Apache (ou outro servidor web, como o nginx), por exemplo, ele se chama Virtual Hosts.

    Entendendo os Virtual Hosts

    Os hosts virtuais funcionam dessa maneira:

    • Um computador faz a requisição para acessar um site pelo seu nome de domínio;

    • Esse pedido chega ao nosso servidor web que encaminha para o host virtual da requisição, podendo ser uma pasta ou outro servidor:

    Como pode ser visto, o servidor recebe a requisição e encaminha para o diretório que está configurado.

    Sabendo disso, vamos configurar nosso serviço para que tenhamos hosts virtuais no servidor.

    Banner do Guia Tático Alura sobre carreira em tecnologia, destacando o mapa da carreira tech. A imagem convida a explorar diferentes caminhos profissionais, comparar possibilidades e encontrar a próxima fase da carreira na área de tecnologia, com chamada “Explore o mapa”.

    Configurando o Apache

    O nosso primeiro passo é acessar o arquivo onde iremos configurar nossos hosts virtuais.

    Esse arquivo, no nosso caso, fica em /etc/httpd/conf/httpd.conf.

    Dentro do arquivo de configuração, vamos dizer que teremos um host virtual que atuará em qualquer endereço ip (*) e escutará na porta que é o padrão para websites (80), portanto ,antes da última linha do arquivo, vamos escrever o seguinte trecho:

    
    # Restante da configuração do Apache
    <VirtualHost *:80>
    </VirtualHost>
    

    Também é preciso informar a pasta onde estarão os arquivos do nosso site. Vamos listar (ls) nossas pastas e saber quais temos disponíveis:

    # ls

    Bem, temos dois diretórios,cada um deles tem como nome o domínio do site. Logo, vamos colocar os arquivos da www.acmetoon.com.br, na pasta que contém esse nome.

    Esse tipo de configuração facilita na administração do servidor, pois sabemos que cada diretório pertence a um site e a qual site se trata. Facilitando a administração no futuro.

    Temos que informar a pasta onde é a raiz de nossos documentos (DocumentRoot), isto é, onde se localizam nossos arquivos, seguido do caminho até o diretório:

    
    <VirtualHost *:80>
        DocumentRoot /www/acmetoon.com.br
    </VirtualHost>
    

    Vamos dizer agora qual é o domínio do nosso site, ou seja, o nome do servidor (ServerName)

    
    <VirtualHost *:80>
        DocumentRoot /www/acmetoon.com.br
        ServerName www.acmetoon.com.br
    </VirtualHost>
    

    Por fim, para que o Apache consiga ver os arquivos em nossa pasta, vamos dar a ele todas as permissões. Informaremos então nosso diretório e o caminho até ele (<Directory "/www/acmetoon.com.br">), em seguida, indicaremos que ele pode ler todos os arquivos (Require all granted):

    
    <VirtualHost *:80>
        DocumentRoot /www/acmetoon.com.br
        ServerName www.acmetoon.com.br
        <Directory "/www/acmetoon.com.br">
            Require all granted
        </Directory>
    </VirtualHost>
    

    O site da AcmeToon está configurado. Vamos então atualizar as instruções do Apache para que ele reconheça nossas configurações. Para isso, vamos restartar o serviço, o comando apachectl restart faz isso para a gente:

    Será que funcionou a nossa configuração? Vamos abrir o navegador e verificar:

    Boa! Está funcionando! Mas agora precisamos configurar nosso outro host. Podemos configurá-lo conforme fizemos no primeiro. A configuração é bem parecida, basta abrir a tag de virtual host e realizar as configurações que vimos a cima:

    
    <VirtualHost *:80>
        DocumentRoot /www/voceanimado.com.br
        ServerName voceanimado.com.br
        <Directory "/www/voceanimado.com.br">
            Require all granted
        </Directory>
    </VirtualHost>
    

    Novamente, temos que reiniciar nosso serviço e testar a configuração do novo host:

    Está funcionando como esperado. Já podemos hospedar nossos sites.

    Configurando Subdomínios

    Com o passar do tempo, a AcmeToon, decidiu criar um blog para a empresa. O blog faz parte do site da empresa e queríamos usar o domínio acmetoon.com.br para hospedá-lo também… Mas como?

    Podemos configurar um subdomínio, isto é, uma ramificação do site principal (www.acmetoon.com.br) que funcionará apenas para o blog da AcmeToon. Nossos hosts virtuais também podem ser utilizados para criar subdomínios.

    A configuração seguirá o padrão das configurações anteriores, também teremos uma pasta para especificar esse website:

    Assim os arquivos do blog ficarão separados dos demais.

    A pasta onde é a raiz de nossos arquivos (DocumentRoot) será blog.acmetoon.com.br, também daremos ao Apache a permissão de acessá-la.A configuração completa fica assim:

    
    <VirtualHost *:80>
        DocumentRoot /www/blog.acmetoon.com.br
        ServerName www.acmetoon.com.br
        <Directory "/www/blog.acmetoon.com.br">
            Require all granted
        </Directory>
    </VirtualHost>
    

    Vamos tentar acessar o blog agora e ver se está funcionando nossa configuração:

    Hum… Por quê não apareceu a página do blog?

    Como o blog é um subdomínio, temos que especificar isso na configuração do Apache, para que ele entenda e consiga acessá-lo. Ou seja, no local onde especificamos o nome do site, temos que dizer que queremos acessar o blog.

    Para isso basta substituir o www por blog no ServerName:

    
    <VirtualHost *:80>
        # Restante da configuração
        ServerName blog.acmetoon.com.br
        # Restante da configuração
    </VirtualHost>
    

    Vamos ver se agora seremos levados ao blog:

    Oba! Conseguimos acessar nossa página do blog. Agora temos todos nossos sites funcionado no mesmo servidor.

    Boas Práticas

    Veja que fizemos a configuração dos hosts virtuais dentro do arquivo de configuração do Apache, ou seja, esse arquivo contém, além das configurações do próprio Apache, nossas especificações sobre os hosts virtuais.

    Como não configuramos muitos hosts diferentes, isso pode não aparentar ser um problema, mas e se fossemos configurar mais cinco, dez ou mais hosts virtuais?

    Da maneira como fizemos anteriormente, as especificações desses novos hosts virtuais estariam dentro do arquivo de configuração do Apache e isso aumentaria muito o tamanho do arquivo destinado às configurações do Apache.

    Além do mais, imaginem buscar a configuração de um único host virtual quando existem vários em um mesmo local.

    Pensando nisso, existe uma boa prática que consiste em criar arquivos separados para cada host virtual. Dessa forma, com códigos isolados uns dos outros, evitamos que o arquivo do Apache fique muito grande e difícil de ler, além de segmentar a configuração dos sites, o que deixa mais fácil a manutenção.

    No post estamos mostrando uma configuração simples utilizando o próprio arquivo do Apache, apenas para mostrar a criação dos hosts virtuais, mas caso desejem ver a configuração utilizando essa boa prática, aqui está o um exemplo sobre como realizá-la.

    Para saber mais

    Como vimos, podemos ter quantos domínios e subdomínios quisermos em um único servidor. Quando isso ocorre ele recebe o nome de servidor compartilhado, já que pode ser compartilhado com vários sites ao mesmo tempo.

    Porém, dependendo do número de requisições que temos em nossos sites, isso pode causar um gargalo no processamento, já que tanto o processamento quanto a memória são compartilhado com os sites.

    Por isso, nos dias de hoje grandes sites utilizam servidores dedicados e distribuídos e cada dia mais aderem ao advento da nuvem (dados distribuídos entre servidores), o que resolve muitos problemas.

    Pontos de atenção

    Estamos fazendo a configuração como superusuário, por isso cuidado para não executar um comando indevido e causar problemas no sistema.

    Vale lembrar também que para nosso sites ficarem no ar, precisamos registrar os nomes em um DNS.

    Conclusão

    Inicialmente estávamos com o problema de hospedar mais de um site no mesmo servidor. Vimos como podemos fazer isso utilizando hosts virtuais. Também, entendemos como é possível realizar a configuração de subdomínios dentro do servidor.

    Além disso, conhecemos que uma possibilidade seria a virtualização do servidor do próprio servidor. Mas nesse caso ela não seria muito viável, já que teríamos que dar manutenção replicada em ambas as virtualizações.

    Contudo, a virtualização é muito utilizada em hospedagem, devido a alguns benefícios de economia de energia, pelo fato de existir apenas uma máquina física.

    E aí, o que achou? Conhecia essas técnicas? Conhece outras? Compartilhe conosco nos comentários.

    Gosta da parte de servidores? Essa é só uma pequena parte do mundo de infraestrutura. Aqui na Alura temos uma formação completa em redes. Nela você aprenderá sobre protocolos de redes, VLans, segurança e muito mais!

    Banner do Guia Tático Alura sobre carreira em tecnologia, destacando o mapa da carreira tech. A imagem convida a explorar diferentes caminhos profissionais, comparar possibilidades e encontrar a próxima fase da carreira na área de tecnologia, com chamada “Explore o mapa”.

    Avalie este artigo

    • Foto de Yuri Matheus

      Autor(a)

      Yuri Matheus

      Yuri é desenvolvedor e instrutor. É estudante de Sistemas de Informação na FIAP e formado como Técnico em Informática no Senac SP. O seu foco é nas plataformas Java e Python e em outras áreas como Arquitetura de Software e Machine Learning. Yuri também atua como editor de conteúdo no blog da Alura, onde escreve, principalmente, sobre Redes, Docker, Linux, Java e Python.

    Explore por tópico

    • Back-end
    • Dados
    • DevOps
    • Front-end
    • Gestão & Negócios
    • Institucionais
    • Inteligência Artificial
    • Mobile
    • UX & Design

    Leia também

    • 07/11/2024

      Guia completo sobre a cultura DevOps para iniciantes

      Ler mais
    • 20/11/2024

      Kubernetes: como usá-lo para gerenciar suas aplicações

      Ler mais
    • 06/02/2018

      Criando um repositório local de imagens Docker

      Ler mais
    Ver mais conteúdos

    Inscreva-se em nossa Newsletter

    Fique por dentro de conteúdos, insights e oportunidades do universo tech. Receba novidades e lançamentos direto no seu e-mail.

    Institucional

    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status
    Institucional
    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status

    A Alura

    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes
    A Alura
    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes

    Conteúdos

    • Alura Cases
    • Imersão Engenharia de Software: Dev na Era da IA
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Conteúdos
    • Alura Cases
    • Imersão Engenharia de Software: Dev na Era da IA
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Alura