Como posso visualizar um site no meu servidor sem atribuir um nome de domínio a ele?

3

Eu tenho um servidor com vhosts conf parecido com isto:

NameVirtualHost *:80

# My Virtual Hosts:
<VirtualHost *:80>
     ServerAdmin [email protected]
     ServerName domain

     DirectoryIndex index.php index.html
     DocumentRoot /var/www/domain/public

     # Custom log file locations
     LogLevel warn

     ErrorLog /var/www/domain/log/error_log
     CustomLog /var/www/domain/log/access_log combined

     <Directory "/var/www/dailysongfix/public">
         Options Indexes FollowSymLinks
         AllowOverride All
         Order allow,deny
         Allow from all
     </Directory>
</VirtualHost>

Um vhost conf típico certo? Bem, eu também preciso desenvolver alguns outros sites no servidor e esses sites ainda não têm domínios conectados a eles. Como posso visualizá-los sem um domínio apontando para eles? Eu estou supondo que talvez o endereço IP e uma porta, mas não sei como configurar isso.

    
por Tony 14.06.2009 / 21:57

4 respostas

7

Se você for usar hosts virtuais nomeados, será necessário atribuir algum nome ao servidor. No seu exemplo, o host será endereçado pelo nome domain (da diretiva ServerName domain ). Você pode tentar entrar em contato com seu servidor diretamente pelo endereço IP fazendo algo como http://123.45.67.89/ , mas isso não fará com que o Apache acione o host virtual nomeado. Para fazer isso, você precisará adicionar algo assim ao seu arquivo /etc/hosts no cliente:

123.45.67.89    domain

Em seguida, você poderá usar http://domain/ no seu navegador. Isso configura o mapeamento entre o nome e o endereço IP localmente, sem ter que mexer com o DNS.

A maneira como isso funciona é quando o navegador envia a solicitação HTTP para o servidor, ele inclui qualquer texto usado após o // na URL em um cabeçalho Host: . O Apache usa esse texto no cabeçalho Host: e corresponde a ele com os valores ServerName em cada host virtual nomeado. Quando encontra uma correspondência, ela usa isso como o servidor para processar o restante da solicitação. O Apache não precisa procurar o mapeamento entre o nome do host e o endereço IP, e é por isso que isso funciona se você apenas alterar a configuração da máquina cliente.

    
por 14.06.2009 / 22:05
1

Use "Alias" em vez de VirtualHost, ele deve funcionar bem se seus aplicativos PHP não exigirem um URL fixo.

Editar: você pode adicionar os aliases à configuração colada acima, basta adicioná-los antes do contêiner.

    
por 14.06.2009 / 23:10
0

talvez não seja o melhor caminho a seguir, mas você sempre pode fazer o seguinte:

  1. cria a entrada do dns * .example.com que aponta para o ip do seu servidor
  2. usuário ServerAlias em cada definição vhost, por exemplo: ServerAlias something.example.com

eu sei, eu sei - não é exatamente o que você pediu, mas eu acho que pode resolver o seu problema.

alternativamente, se seus vhosts tiverem exatamente a mesma configuração, basta colocar suas páginas da web em / somewhere / {nameOfDomain} e depois compartilhar / em algum lugar como outro vhost. então você poderá acessar qualquer página acessando o link {nameOfDomain}. isso pode causar algum risco de segurança se você tiver algumas regras de acesso no vhosts [que provavelmente não seriam incluídas na configuração 'outro vhost'].

    
por 14.06.2009 / 22:03
0

Em qualquer pacote padrão, o apache será configurado para uso via endereço IP. que basicamente não tem um host virtual

    
por 15.06.2009 / 01:32