Virtual Host com Apache

Virtual Host é a capacidade de hospedar mais do que um web site numa única máquina, com um endereço IP ou mais. Nesse artigo aprenderemos os fundamentos básicos para se configurar virtual hosts no servidor.

[ Hits: 229.862 ]

Por: Johnson Teixeira do Nascimento em 09/11/2004


Apache



Adiante vou explicar como configurar vários domínios em uma única máquina. Vou levar em consideração que você está em um máquina Linux com o Apache corretamente instalado.

Tudo bem, mão na massa!

Vamos usar como exemplo dois endereços diferentes:
  • www.meusite1.com
  • www.meusite2.org

Vamos modificar dois arquivos:
  • /etc/hosts
  • httpd.conf1

1: arquivo normalmente localizado em /usr/local/apache2/conf/, /etc/httpd/conf/ ou /etc/apache/conf/.

Abra o arquivo /etc/hosts e acrescente as seguintes linhas:

127.0.0.1    meusite1   www.meusite1.com   meusite1
127.0.0.1    meusite2   www.meusite2.org     meusite2

Abra o httpd.conf e no final do arquivo, acrescente o seguinte:

NameVirtualHost *

  <VirtualHost *>
    ServerName localhost
    DocumentRoot /usr/local/apache2/htdocs
  </VirtualHost>

  <VirtualHost *>
    ServerName www.meusite1.com
    DocumentRoot /usr/local/apache2/htdocs/meusite1
  </VirtualHost>

  <VirtualHost *>
    ServerName www.meusite2.org
    DocumentRoot /usr/local/apache2/htdocs/meusite2
  </VirtualHost>

OBS: Você deve ter os diretórios meusite1 e meusite2 no seu DocumentRoot. Preste atenção nas linhas DocumentRoot. Se o seu DocumentRoot está em /var/www/html, você deve modificar a linha para "DocumentRoot /var/www/http/meusite1".

    Próxima página

Páginas do artigo
   1. Apache
   2. Solucionando problemas
Outros artigos deste autor

Virtual Host com Apache + SSL

Criando JPG animado com o JpegAnim

Leitura recomendada

Gravando mp3 usando o XMMS

PHP 6.0 - Você está pronto?

Apache 2.2 - Introdução ao módulo mod_rewrite

Apache 2 para Debian

Oi 3g Huawei E220 HSDPA USB Modem + gnome-ppp (wvdial.conf)

  
Comentários
[1] Comentário enviado por removido em 09/11/2004 - 19:27h

Showw de bola o artigo simples e direto ao assunto... Parabéns..

[2] Comentário enviado por alphainfo em 09/11/2004 - 22:00h

Legal o artigo. Mas não seria melhor se ao invés de usar o arquivo hosts, você usasse servidor DNS?

[]'s

Daniel Freire

[3] Comentário enviado por alphainfo em 09/11/2004 - 22:10h

Ah, esqueci tb, na solução de problemas, existe uma outra solução, que é setar a diretiva "DirectoryIndex" e discriminar os arquivos que o Apache pegará como index. Tipo:

DirectoryIndex index.htm index.html index.php

E, lógico, se não for respoitório de arqquivos e tal, BLOQUEAR Multiviews impede que isso aconteça.

[]'s

Daniel Freire

[4] Comentário enviado por yusuke em 10/11/2004 - 04:13h

sugiro um artigo sobre como criar um certificado no apache com ssl
estou procurando a um bom tempo...

[5] Comentário enviado por HackSpy em 10/11/2004 - 15:25h

O Virtual Host para leigos é um bicho de sete cabeças, mas bastando ter um IP fixo e conhecimento em protocolos em LINUX, é possível realizar hospedagens e muito mais em sua própria residência. Parabéns pelo artigo!

[6] Comentário enviado por johnson em 10/11/2004 - 16:52h

Resposta ao alphainfo.

Não falei sobre configuração de servidor dns porque complicaria mais o artigo, que no caso não era a minha intenção. Minha intenção era que a pessoa, em poucas linhas, criar domínios virtuais.

[7] Comentário enviado por sh0x em 11/11/2004 - 04:59h

Tah bacana o artigo, mais porem mesmo assim, a maquina ainda naum vai responder pelos Dominios certo!?
pra isso teriamos que quer um servidor DNS certo!? ou dessa forma os dominios jah responderiam ?

[8] Comentário enviado por johnson em 11/11/2004 - 14:33h

Claro... numa rede isto não seria o correto. Tem que ter um servidor dns com um ip que realmente exista, etc...


[9] Comentário enviado por jhonny em 23/11/2004 - 01:00h

Meus parabéns pelo artigo irmão; simples e objetivo!

[10] Comentário enviado por Hiram em 18/02/2005 - 11:12h

muito bem explicado amigo!!! Geralmente as documentações oficiais são totalmente confusas ou pouco intuitivas... raramente vão direto ao assunto...

isso ae parabéns.. vai pro favoritos pra vc faturar 100 pts hahaah!

[]s

[11] Comentário enviado por mastergeekcd em 01/10/2005 - 03:49h

Muito bom este artigo! fiz e funfa legal!

[12] Comentário enviado por sapiras em 13/12/2005 - 15:41h

Legal, tem como fazer pelo Alias também?

[13] Comentário enviado por pitt3r_p4rk3r em 14/12/2005 - 16:32h

Bom artigo...

Simples, Direto, Pratico e Funcional.

[14] Comentário enviado por mrc5 em 05/01/2006 - 20:06h

Muito bom esse artigo, fiz e funcionou tudo certinho.
Parabéns.

[15] Comentário enviado por kady em 09/01/2006 - 13:23h

Até o momento tudo certo
mais como poderei deixar para que quando alguem entrar em http://meuip
entre em determinada pasta?

eu configurei e gostaria que se fosse digitado somento o ip ir para uma determinada pasta..
jah com virtual host que foi mostrado eu terei que por http://meuip/pasta

alguem pode me ajudar?

OBS preciso dos dois casos
http://meuip/
http://meuip/pasta

porem usuarios diferentes

[16] Comentário enviado por beto_pena em 07/06/2006 - 08:46h

A respeito do DNS:
você só precisa acidionar as linhas de novas zonas no 'named.conf' e criar os arquivos das zonas (M.site.com.br e dominio/S.site.com.br, por exemplo) dentro da pasta root do seu named.

[17] Comentário enviado por beto_pena em 07/06/2006 - 08:57h

Ao KADY:
sobre entrar digitando o IP, é só digitar o IP mesmo...eheh. Não faz diferença...
em relação à distinção de usuários:
- Dentro do diretório que vai ser restrito vc cria um arquivo '.htaccess':
$ vi $root_do_apache/restrito/.htaccess
#AuthName "Acesso restrito"
#AuthType Basic
#AuthUserFile $root_do_apache/acesso_restrito.pwd
#Require valid-user
#Satisfy All
:x

Agora vc cria o(s) usuário(s):
$htpasswd -c $local_do_pwd/acesso-restrito.pwd usuario

Pronto. Agora é só relaxar, testar e aproveitar.
(Ah, o -c do htpasswd é só pra indicar onde vc vai criar o arquivo de usuários)


[18] Comentário enviado por beto_pena em 07/06/2006 - 09:07h

ah, antes que eu me esqueça..suponho que vc já tenha configurado o:
<Directory "$root_do_apache/restrio">
AllowOverride AuthConfig
<IfModule mod_access.c>
Order allow,deny
Allow from All (ou Allow from suarede/máscara)
</IfModule>
</Directory>

[19] Comentário enviado por vinivend em 25/10/2007 - 08:42h

otimo artigo, simples e bem explicativo

[20] Comentário enviado por flavi0 em 23/11/2007 - 17:39h

olá,
você usou

NameVirtualHost *

<VirtualHost *>
ServerName localhost
DocumentRoot /usr/local/apache2/htdocs
</VirtualHost>

com asterisco (*)
gostaria de saber se eu poderia usar alguma outra coisa no lugar do asterisco

obrigado ^^

[21] Comentário enviado por gpr.ppg.br em 16/12/2007 - 00:01h

nao consigo acessar pela rede intranet

ex: www3.meusite.com.br

só no servidor. que faço? onde arrumo isso?

abraços,
gpr.

[22] Comentário enviado por gpr.ppg.br em 16/12/2007 - 00:53h

algo nao acertei.

meu www3.minhaintranet.com.br

nao funciona na rede só no servidor, porque será?

algo errado no bind??? ou no apache???


abraços,
gpr.

[23] Comentário enviado por ares em 12/05/2008 - 14:08h

?comentario=Acho que seria melhor usado com named.conf e sites-available.

[24] Comentário enviado por levisa em 10/12/2009 - 16:02h

pessoal tem como eu fazer essa referencia(redirecionamento) do virtualHost para outra maquina algo do tipo:

<VirtualHost *>
ServerName localhost
DocumentRoot http:\\196.255.255.255\meusite2
</VirtualHost>

[25] Comentário enviado por bbjr em 24/01/2015 - 03:34h

olá todos! estou precisando de ajuda para resolver meu problema, o tutorial em uma determinada parta fica sem sentido para mim, veja meu cenário...

Tenho um servidor contratado pela locaweb, ubuntu server instalado. O ip é fixo, tenho um domínio que aponta para o ip do servidor, e tem instalado nele um ambiente virtual de aprendizagem, moodle. Eu quero hospedar nele outro site, inclusive já registrei o domínio no registro.br. Não está fazendo sentido o tutorial para resolver meu problema, porque veja bem, eu quero que o outro domínio que será administrado no Registro.br, aponte para o ip do servidor, mais precisamente para uma pasta, /var/www/site1. Sendo que eu já tenho outro dominio apontando para esse mesmo IP do servidor, /var/www/moodle, como posso resolver esse problema? criar IPS virtuais? como o vou acessar de forá um ip virtual ou como vou apontar o dominio do registro.br para esse ip virtual?


Contribuir com comentário