Tại sao apache cho thất bại tra cứu DNS?


8

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.comgiao 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.comgiao 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.conflà:

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

Câu trả lời:


25

Thêm dấu gạch chéo bị thiếu vào lệnh ProxyPassvà lệnh của bạn ProxyPassReverse:

ProxyPass / ajp://server.ip.addr:8013/
ProxyPassReverse / ajp://server.ip.addr:8013/
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.