CentOS 7 웹 서버에는 Apache httpd 역방향 프록시 뒤에 war 파일을 제공하는 tomcat이 있습니다. 이는 WAR 파일이 모두 서버 측 코드일 때 잘 작동합니다. 그러나 클라이언트 측 코드(이 경우 AngularJS)가 서버 측 코드와 함께 war 파일에 포함되면 domain3.com
웹 브라우저에 입력할 때 Apache httpd 2.4는 애플리케이션에서 핵심 html 파일의 모든 종속성을 대상으로 합니다. 다음 프록시 오류가 발생합니다:
[proxy:error] AH00898: DNS lookup failure for: resources returned by /res$
이것이 Tomcat 버그가 아닌 Apache 버그인지 확인하기 위해 방화벽에서 앱의 8084 포트를 열고 로드하여 domain3.com:8084
클라이언트인 AngularJS 코드를 포함하여 앱이 제대로 실행되고 있는지 확인했습니다.
domain3.com
웹 브라우저에 요청이 있을 때 전쟁에 포함된 클라이언트 애플리케이션에 포함 콘텐츠를 제공 하려면 Apache httpd 2.4를 활성화하려면 어떤 구성 변경이 필요합니까 ?
이러한 트랜잭션 domain3.com
의 전체 httpd 로그 는 다음과 같습니다.
[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$
동일한 domain3.com
트랜잭션에 대한 Tomcat 로그에는 성공적인 GET 요청이 하나만 표시됩니다.
client.ip.addr - - [03/Nov/2015:14:31:57 -0500] "GET / HTTP/1.1" 200 2944
클라이언트는 이를 종속성에 대한 502 오류로 간주하지만 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/