Một máy chủ web CentOS 7 có tomcat phục vụ các tệp chiến tranh đằng sau một proxy ngược httpd apache. Điều này hoạt động hoàn hảo khi các tệp WAR là tất cả mã phía máy chủ. Nhưng khi mã phía máy khách (AngularJS trong trường hợp này) được đưa vào cùng với mã phía máy chủ trong các tệp chiến tranh, apache httpd 2.4 sẽ đưa ra lỗi proxy sau cho mọi phụ thuộc của tệp html lõi trong ứng dụng khi domain3.com
được nhập vào trình duyệt web:
[proxy:error] AH00898: DNS lookup failure for: resources returned by /res$
Để xác nhận rằng đây là lỗi apache chứ không phải lỗi tomcat, tôi đã mở cổng 8084 cho ứng dụng trong tường lửa và sau đó tải domain3.com:8084
để tìm ứng dụng chạy hoàn hảo, bao gồm phía máy khách của nó, AngularJS, mã.
Những thay đổi cấu hình nào được yêu cầu để kích hoạt apache httpd 2.4 để phục vụ bao gồm cho ứng dụng phía máy khách được đưa vào cuộc chiến khi các yêu cầu domain3.com
được nhập vào trình duyệt web?
Nhật ký httpd hoàn chỉnh cho một domain3.com
giao dịch như vậy là:
[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$
Nhật ký tomcat cho cùng một domain3.com
giao dịch chỉ hiển thị một yêu cầu GET thành công:
client.ip.addr - - [03/Nov/2015:14:31:57 -0500] "GET / HTTP/1.1" 200 2944
Máy khách xem đây là các lỗi 502 cho các phụ thuộc, nhưng không phải index.html
, đây là tài nguyên duy nhất được phục vụ chính xác.
Phần có liên quan /etc/httpd/conf.d/virtualhosts.conf
là:
<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>
Vậy tôi phải thay đổi điều gì httpd
để phục vụ các yêu cầu cho các tệp bao gồm trong phần phía máy khách của ứng dụng tại domain3.com
?