Por que o apache está dando falhas de pesquisa de DNS?

5

Um servidor web do CentOS 7 tem o tomcat servindo arquivos war atrás de um proxy reverso httpd apache. Isso funciona perfeitamente quando os arquivos WAR são todos códigos do lado do servidor. Mas quando o código do lado do cliente (AngularJS, neste caso) é incluído junto com o código do lado do servidor nos arquivos war, o apache httpd 2.4 gera o seguinte erro de proxy para cada dependência do arquivo html principal no aplicativo quando domain3.com é digitado em um navegador da web:

[proxy:error] AH00898: DNS lookup failure for: resources returned by /res$

Para confirmar que se trata de um erro do apache e não de um tomcat, abri a porta 8084 do aplicativo no firewalld e carreguei domain3.com:8084 para encontrar o aplicativo funcionando perfeitamente, incluindo o código do lado do cliente, AngularJS.

Quais alterações de configuração são necessárias para permitir que o apache httpd 2.4 exiba os includes do aplicativo do lado do cliente incluído na guerra quando solicitações para domain3.com são digitadas em navegadores da Web?

Os registros completos do httpd para uma dessas transações domain3.com são:

[Tue Nov 03 14:31:57.662516 2015] [proxy:error] [pid 9332] [client client.ip.addr:57369] AH00898: DNS lookup failure for: server.ip.addr:8013resources returned by /res$
[Tue Nov 03 14:31:57.747345 2015] [proxy:error] [pid 9332] [client client.ip.addr:57369] AH00898: DNS lookup failure for: server.ip.addr:8013resources returned by /res$
[Tue Nov 03 14:31:57.752815 2015] [proxy:error] [pid 9294] [client client.ip.addr:57370] AH00898: DNS lookup failure for: server.ip.addr:8013js returned by /js/lib/ang$
[Tue Nov 03 14:31:57.757663 2015] [proxy:error] [pid 11936] [client client.ip.addr:57372] AH00898: DNS lookup failure for: server.ip.addr:8013js returned by /js/lib/an$
[Tue Nov 03 14:31:57.758121 2015] [proxy:error] [pid 4325] [client client.ip.addr:57371] AH00898: DNS lookup failure for: server.ip.addr:8013js returned by /js/lib/ang$
[Tue Nov 03 14:31:57.758509 2015] [proxy:error] [pid 23006] [client client.ip.addr:57373] AH00898: DNS lookup failure for: server.ip.addr:8013js returned by /js/lib/an$
[Tue Nov 03 14:31:57.762749 2015] [proxy:error] [pid 9325] [client client.ip.addr:57374] AH00898: DNS lookup failure for: server.ip.addr:8013js returned by /js/lib/ang$
[Tue Nov 03 14:31:57.829953 2015] [proxy:error] [pid 9332] [client client.ip.addr:57369] AH00898: DNS lookup failure for: server.ip.addr:8013js returned by /js/lib/ang$
[Tue Nov 03 14:31:57.846174 2015] [proxy:error] [pid 9294] [client client.ip.addr:57370] AH00898: DNS lookup failure for: server.ip.addr:8013js returned by /js/lib/ang$
[Tue Nov 03 14:31:57.851022 2015] [proxy:error] [pid 4325] [client client.ip.addr:57371] AH00898: DNS lookup failure for: server.ip.addr:8013somecontroller.js returned$
[Tue Nov 03 14:31:58.049885 2015] [proxy:error] [pid 9332] [client client.ip.addr:57369] AH00898: DNS lookup failure for: server.ip.addr:8013js returned by /js/lib/ang$
[Tue Nov 03 14:31:58.207199 2015] [proxy:error] [pid 9332] [client client.ip.addr:57369] AH00898: DNS lookup failure for: server.ip.addr:8013js returned by /js/lib/ang$
[Tue Nov 03 14:31:58.320704 2015] [proxy:error] [pid 9332] [client client.ip.addr:57369] AH00898: DNS lookup failure for: server.ip.addr:8013js returned by /js/lib/ang$
[Tue Nov 03 14:31:58.428737 2015] [proxy:error] [pid 9332] [client client.ip.addr:57369] AH00898: DNS lookup failure for: server.ip.addr:8013js returned by /js/lib/ang$
[Tue Nov 03 14:31:58.523564 2015] [proxy:error] [pid 9332] [client client.ip.addr:57369] AH00898: DNS lookup failure for: server.ip.addr:8013js returned by /js/lib/ang$
[Tue Nov 03 14:31:58.611546 2015] [proxy:error] [pid 9332] [client client.ip.addr:57369] AH00898: DNS lookup failure for: server.ip.addr:8013js returned by /js/lib/ang$
[Tue Nov 03 14:31:58.708439 2015] [proxy:error] [pid 9332] [client client.ip.addr:57369] AH00898: DNS lookup failure for: server.ip.addr:8013somecontroller.js returned$

Os logs do tomcat para a mesma transação domain3.com mostram apenas uma solicitação GET bem-sucedida:

client.ip.addr - - [03/Nov/2015:14:31:57 -0500] "GET / HTTP/1.1" 200 2944

O cliente vê esses erros como 502 para as dependências, mas não para index.html , que é o único recurso que é exibido corretamente.

A seção relevante de /etc/httpd/conf.d/virtualhosts.conf é:

<VirtualHost www.domain3.com:80>
    ServerName www.domain3.com
    ServerAlias domain3.com
    ErrorLog /var/log/httpd/domain3_com_error.log
    CustomLog /var/log/httpd/domain3_com_requests.log combined
    ProxyPass / ajp://server.ip.addr:8013
    ProxyPassReverse / ajp://server.ip.addr:8013
</VirtualHost>

Então, o que eu altero para obter httpd para atender às solicitações dos arquivos de inclusão na parte do aplicativo do cliente em domain3.com ?

    
por CodeMed 03.11.2015 / 23:22

1 resposta

19

Adicione a barra final perdida às suas diretivas ProxyPass e ProxyPassReverse :

ProxyPass / ajp://server.ip.addr:8013/
ProxyPassReverse / ajp://server.ip.addr:8013/
    
por 04.11.2015 / 01:30