Não é possível acessar o host virtual via Apache no host local

2

Estou começando a arrancar meu cabelo.

Usando o Redhat / Apache, temos três hosts virtuais configurados para atender três domínios baseados no Drupal e um quarto host virtual configurado para atender ao Redmine via passageiro, tudo de uma única máquina.

Esta configuração é adequada para todo o tráfego, todos os endereços de rede podem resolver todos os quatro domínios. Devido à infraestrutura de rede, a caixa em questão usa um proxy para ver o mundo externo.

Eu tentei acessar a API Redmine de um script na máquina local e a resposta é um erro:

While trying to retrieve the URL: http://projects/users.xml 

The following error was encountered: 

Unable to determine IP address from host name for projects 
The dnsserver returned: 

Name Error: The domain name does not exist. 
This means that: 

 The cache was not able to resolve the hostname presented in the URL. 
 Check if the address is correct. 

Acessar a API de uma máquina externa fornece a resposta esperada, portanto a API está acessível - o que me leva a acreditar que isso é apenas um problema com o Apache e / ou o PHP resolvendo o domínio do host virtual de si mesmo.

Eu adivinhei que isso pode ser um problema de proxy, que o proxy usado não tem conhecimento do DNS da rede local, mas eu não sei como desativar o proxy para que o Apache verifique, já que não configurou este servidor e não está familiarizado com os requisitos de proxy em geral.

Se eu puder confirmar se esse é ou não um problema de proxy, como faço uma exceção para determinados domínios? Eu suponho que eu preciso fazer uso da variável de ambiente NO_PROXY, mas, novamente, eu não sei como fazer isso para o usuário Apache, e mais importante, despejar as variáveis ENV para o usuário Apache não mostra um valor HTTP_PROXY em tudo, então estou assumindo que o Apache usa a configuração de proxy em outro lugar.

Eu estou sentindo falta de algo óbvio?

EDITAR: Conforme solicitado, nslookup para o domínio retorna:

$ nslookup projects
Server:         10.11.6.31
Address:        10.11.6.31#53

Name:   projects.INNSERVE.LOCAL
Address: 10.11.6.48

EDIT 2: Conforme solicitado, os resultados do wget para o URL em questão são:

$ wget projects/users.xml
--2012-12-22 19:12:51--  http://projects/users.xml
Resolving projects... 10.11.6.48
Connecting to projects|10.11.6.48|:80... connected.
HTTP request sent, awaiting response... 401 Authorization Required
Authorization failed.
    
por kieran_delaney 19.12.2012 / 13:21

2 respostas

0

Fora do desespero, conseguimos corrigir o problema redefinindo os arquivos de hosts do servidor web Apache. Anteriormente, usávamos o Webmin para configurá-los (principalmente, criei manualmente a entrada do host do projeto para servir a instalação do Redmine via passageiro).

A questão era a seguinte:

Os projetos foram definidos como um host virtual com um número de porta:

<VirtualHost our.ip.address:80>
DocumentRoot /opt/redmine-2.1.2/public
ServerName projects
...

Embora todos os outros hosts virtuais tenham sido definidos sem rotular explicitamente o número da porta:

<VirtualHost our.ip.address>
    DocumentRoot /var/www
    ServerName address.domain.local
    ServerAlias address

Isso funcionou bem em todos os aspectos além do Apache resolver seus próprios hosts virtuais.

A alteração dos hosts virtuais restantes para incluir o número da porta parece ter corrigido isso (e os números das portas são importantes, pois usamos vários números de portas por vários motivos não pertinentes aqui).

    
por 08.01.2013 / 12:07
2

Eu tentaria um dos seguintes procedimentos:

adicione

domain example.com
search example.com

para /etc/resolv.conf

Ou adicione

11.22.33.44    projects.example.com projects

para / etc / hosts

Qualquer um deles provavelmente resolverá o problema do DNS.

    
por 19.12.2012 / 13:43