CentOS 7 웹 서버에는 Apache httpd 역방향 프록시 뒤에서 war 파일을 제공하는 tomcat이 있습니다. 이는 WAR 파일이 모두 서버 측 코드일 때 완벽하게 작동합니다. 그러나 클라이언트 측 코드(이 경우 AngularJS)가 war 파일의 서버 측 코드와 함께 포함되면 Apache httpd 2.4 domain3.com
는 웹 브라우저에 입력할 때 앱의 핵심 html 파일의 모든 종속성에 대해 다음 프록시 오류를 발생시킵니다 .
[proxy:error] AH00898: DNS lookup failure for: resources returned by /res$
이것이 Tomcat 오류가 아닌 Apache 오류인지 확인하기 위해 Firewalld에서 앱의 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$
동일한 트랜잭션에 대한 Tomcat 로그에는 domain3.com
성공적인 GET 요청이 하나만 표시됩니다.
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/