A solicitação de curl não resolverá para localhost

6

Eu tenho um servidor ubuntu executando o apache no localhost / porta 80. Seu domínio é sub.domain.com

Se eu fizer uma solicitação de enrolar para o link nessa máquina, ocorrerá um erro com 'couldnt connect to host' imediatamente.

Se eu fizer uma solicitação de curvatura para sub.domain.com nessa máquina, ela ficará em um loop infinito até expirar após alguns minutos.

Se eu abrir sub.domain.com no meu navegador da Web em outra máquina, ele mostrará minha página html.

Se eu fizer uma solicitação de onda para sub.domain.com com outra máquina, ela será conectada.

Qual é o problema aqui?

    
por Ashley Smith 17.04.2012 / 17:44

3 respostas

2

Seu comentário: "ele escuta em 192.168.2.1 e, em seguida, um dispositivo de loopback de IP público é 127.0.0.1". Então, o Apache não está ouvindo 127.0.0.1? Se for esse o caso, esse é o seu problema. Configure o Apache para ouvir todas as interfaces ou, pelo menos, adicione a interface de loopback ao que o Apache está escutando.

Próxima edição: "Se eu fizer uma solicitação de curvatura para sub.domain.com nessa máquina, ela ficará em um loop infinito até expirar após alguns minutos." O que você ganha quando você ping sub.domain.com ? Esse problema parece um problema de resolução de nomes nessa máquina, já que você pode se conectar com sucesso de outra máquina.

    
por 17.04.2012 / 20:18
5

É provável que você precise especificar os cabeçalhos de host usando curl, ou então o Apache não sabe qual página exibir - dependendo de como você está configurado, o localhost provavelmente mostrará uma página padrão do apache, enquanto seu host virtual (sub.domain. com) mostrará a página que você espera.

Tente usar:

curl -H "Host:sub.domain.com" 127.0.0.1
    
por 17.04.2012 / 17:56
1

Execute ping sub.domain.com de outra máquina e registre o endereço IP nas respostas (xxx.yyy.zzz.www). Então, a partir do uso da máquina do apache:

curl -H "Host:sub.domain.com" xxx.yyy.zzz.www
    
por 17.04.2012 / 18:29