Como acesso hosts virtuais da rede interna no Apache?

0

Esta pode ser uma pergunta estúpida, mas estou cansado e não consigo encontrar uma solução.

Atualmente, tenho um servidor Web Apache em execução no Ubuntu 10.4 e uso um serviço DynDNS para torná-los acessíveis ao mundo externo por meio de um domínio e / ou subdomínio.

Minhas configurações atualmente são assim:

<VirtualHost *:80>

    ServerAdmin     <obscured>@<obscured>.com
    ServerName      <subdomain>.<obscured>.com
    ServerAlias     <subdomain>

    DocumentRoot    /<obscured>/<subdomain>

    <Directory />
        Options         FollowSymLinks
        AllowOverride   None
    </Directory>

    <Directory /<obscured>/<subdomain>>
        Options         Indexes FollowSymLinks MultiViews
        AllowOverride   All
        Order           Allow,Deny
        Allow           From All
    </Directory>

    ErrorLog    ${APACHE_LOG_DIR}/error.$host.log
    CustomLog   ${APACHE_LOG_DIR}/access.$host.log combined

</VirtualHost>

Isso funciona bem com o acesso fora da rede e todos os subdomínios são resolvidos para o diretório correto.

O problema que estou tendo é acessar um subdomínio pela minha rede interna.

Posso acessar o servidor da Web usando o endereço IP do servidor: http://192.168.1.123/mas isso sempre me leva ao mesmo host virtual e não sei como distinguir entre diferentes hosts virtuais (subdomínios diferentes).

Idealmente, eu gostaria de acessar os mesmos subdomínios usando http://<subdomain>/where <subdomain>é o mesmo que o subdomínio anexado ao nome de domínio externo.

Alguma ideia?

Ryall
fonte

Respostas:

2

Como você descobriu, se você usar o endereço IP do servidor, será direcionado para a primeira instância virtual da lista.

Acabei de adicionar entradas ao meu arquivo de hosts locais que usam os nomes dos servidores virtuais.

Alguns roteadores xDSL (por exemplo: Draytek) permitem que você use URLs que se refiram a sites hospedados na LAN local - isso é chamado de loopback de DNS -, portanto, outra 'correção' é mudar o roteador. Essa pode ser uma opção viável para, por exemplo, uma empresa, onde é uma solução mais fácil de gerenciar do que atualizar todos os arquivos de hosts locais.

Linker3000
fonte
0

Verifique se o nome do host está resolvido para o endereço IP esperado e se o Apache está realmente ouvindo esse IP.

Randolf Richardson
fonte
Desculpe, atualizei minha pergunta para esclarecimentos. Funciona bem externamente.
Ryall
Qual é o IP privado? Verifique se o Apache está ouvindo isso também.
Randolf Richardson
Atualizado novamente, eu posso acessá-lo usando o IP diretamente, mas não sei como distinguir entre diferentes vhosts executando subdomínios diferentes.
Ryall
Dica: Verifique sua diretiva "Listen" no arquivo httpd.conf principal - isso precisa cobrir tudo o que você precisa servir (especificar a porta 80 sem um endereço IP deve capturar tudo).
Randolf Richardson
A diretiva "ServerName" será a principal. Se você tiver hosts adicionais, adicione uma diretiva "ServerAlias" depois disso para dar suporte aos adicionais na mesma sub-rotina / contêiner do VirtualHost.
Randolf Richardson