Apache が DNS ルックアップに失敗する理由は何ですか?

Apache が DNS ルックアップに失敗する理由は何ですか?

CentOS 7 ウェブ サーバーには、Apache httpd リバース プロキシの背後で WAR ファイルを提供する Tomcat があります。WAR ファイルがすべてサーバー側コードである場合は、これは完全に機能します。ただし、クライアント側コード (この場合は AngularJS) が WAR ファイルにサーバー側コードと一緒に含まれている場合、Web ブラウザーに入力されたときに、アプリのコア HTML ファイルの依存関係ごとに、Apache httpd 2.4 によって次のプロキシ エラーがスローされますdomain3.com

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

これが Apache エラーであり、Tomcat エラーではないことを確認するために、firewalld でアプリの 8084 ポートを開き、アプリをロードしてdomain3.com:8084、クライアント側の AngularJS コードを含め、アプリが完全に実行されていることを確認しました。

domain3.comリクエストが Web ブラウザーに入力されたときに、war に含まれるクライアント側アプリの include を apache httpd 2.4 で提供できるようにするには、どのような構成変更が必要ですか?

このようなトランザクションの完全な httpd ログは次のdomain3.comとおりです。

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

同じトランザクションの Tomcat ログには、domain3.com成功した GET 要求が 1 つだけ表示されます。

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

クライアントは、依存関係についてはこれらを 502 エラーとして認識しますが、index.html唯一正しく提供されるリソースである についてはそう認識しません。

の関連セクションは/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>

httpdでは、アプリのクライアント側部分でインクルード ファイルのリクエストを処理するには、何を変更すればよいでしょうかdomain3.com?

答え1

不足している末尾のスラッシュをProxyPassおよびProxyPassReverseディレクティブに追加します。

ProxyPass / ajp://server.ip.addr:8013/
ProxyPassReverse / ajp://server.ip.addr:8013/

関連情報