Como posso fazer com que o Apache não responda a uma solicitação somente de IP?

5

Eu tenho vários sites, todos configurados em http-vhosts.conf com seus respectivos ServerName e DocumentRoot , eles estão funcionando bem e dandy.

Mas quando visito a URL do endereço IP do servidor, recebo os arquivos no primeiro host virtual, em vez de o Apache ser exibido de onde eu esperava, http.conf do arquivo DocumentRoot .

Como posso configurar o Apache para visitar o servidor pelo endereço IP, seja externo ou loopback, não retorna o primeiro VirtualHost?

Aqui está o primeiro VirtualHost, que atualmente estou recebendo de volta como a resposta se eu visitar o servidor web por IP:

<VirtualHost *:80>
    ServerName "delaneatallent.com"
    ServerAlias "www.delaneatallent.com"
    DocumentRoot "/Library/WebServer/Documents/delanea"
</VirtualHost>

Usando o Apache 2.2.14 no OS X, se isso for importante.

: wq

    
por richardtallent 28.08.2010 / 19:45

3 respostas

10

Em suma, você não pode - é assim que o Apache funciona. Se você estiver ouvindo esse IP (conforme o comentário do Prix), o Apache usará o primeiro host virtual, conforme definido, ao fornecer uma solicitação de IP.

Se isso não for desejado, considere alterar o primeiro host virtual para ser o que você realmente deseja que seja exibido se for por IP. Se isso não é o que você quer, então considere colocar em redirecionamento como o primeiro host virtual para fazê-lo ir em algum lugar que você quer.

# default
<VirtualHost *:80>
  RewriteEngine on
  RewriteRule ^/(.*) http://othersite.com/$1 [L,R]
</VirtualHost>

Você não pode impedir que o Apache ouça esse IP, mas você pode fazer algo que faça o que quiser com um pouco de criatividade.

    
por 28.08.2010 / 20:22
1

O que eu fiz para remediar isso foi fazer uma página padrão para /var/www e que serve o site padrão que você vê quando navega para o meu servidor por IP ou url desconhecido relacionado a um site no meu servidor.

Os sites reais que eu hospedo estão na pasta habilitada para sites com a configuração padrão do site, todos baseados em nomes e apontando para um diretório diferente.

Para encurtar a história, navegue até meu servidor por seu IP e receba a página de erro padrão.

    
por 02.09.2013 / 02:30
-1

Para fazer seu apache ouvir ip e porta específicos, você deve defini-lo:

Listen 10.0.0.1:80
Listen 20.0.0.1:80

Onde 20.0.0.1 e 10.0.0.1 são 2 exemplos ips que eu atribuímos a ele.

Se você já tiver outro Listen configurado, poderá ser necessário alterá-lo, por exemplo:

Listen 0.0.0.0:80 

faria seu apache escutar em todas as interfaces disponíveis.

    
por 28.08.2010 / 19:50