Warum gibt Apache DNS-Suchfehler aus?


8

Auf einem CentOS 7-Webserver stellt Tomcat Kriegsdateien hinter einem Apache-httpd-Reverse-Proxy bereit. Dies funktioniert perfekt, wenn die WAR-Dateien alle serverseitigen Code sind. Wenn jedoch clientseitiger Code (in diesem Fall AngularJS) neben serverseitigem Code in den War-Dateien enthalten ist, löst Apache httpd 2.4 den folgenden Proxy-Fehler für jede Abhängigkeit der HTML-Kerndatei in der App aus, wenn er domain3.comin einen Webbrowser eingegeben wird:

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

Um zu bestätigen, dass dies ein Apache-Fehler und kein Tomcat-Fehler ist, habe ich den 8084-Port für die App in Firewalld geöffnet und dann geladen, domain3.com:8084um festzustellen, dass die App perfekt ausgeführt wird, einschließlich des clientseitigen AngularJS-Codes.

Welche Konfigurationsänderungen sind erforderlich, damit Apache httpd 2.4 die Includes für die clientseitige App bereitstellt, die im Krieg enthalten ist, wenn Anforderungen domain3.comin Webbrowser eingegeben werden?

Die vollständigen httpd-Protokolle für eine solche domain3.comTransaktion sind:

[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$

Die Tomcat-Protokolle für dieselbe domain3.comTransaktion zeigen einfach eine erfolgreiche GET-Anforderung an:

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

Der Client sieht diese als 502 Fehler für die Abhängigkeiten an, jedoch nicht für index.htmldie einzige Ressource, die ordnungsgemäß bereitgestellt wird.

Der relevante Abschnitt von /etc/httpd/conf.d/virtualhosts.confist:

<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>

Was ändere ich also httpd, um die Anforderungen für die Include-Dateien im clientseitigen Teil der App unter zu bearbeiten domain3.com?

Antworten:


25

Fügen Sie den fehlenden abschließenden Schrägstrich zu Ihren ProxyPassund ProxyPassReverseDirektiven hinzu:

ProxyPass / ajp://server.ip.addr:8013/
ProxyPassReverse / ajp://server.ip.addr:8013/
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.