2012-03-23 69 views
24

Chúng tôi có một ứng dụng được triển khai trên tomcat. Để truy cập ứng dụng, chúng tôi đang sử dụng apache gửi yêu cầu tới tomcat. Tại trình duyệt ngẫu nhiên cho phản hồi sau.Máy chủ proxy nhận được phản hồi không hợp lệ từ máy chủ ngược dòng

Proxy Error 
The proxy server received an invalid response from an upstream server. 
The proxy server could not handle the request GET /sampleapp/<http://samplehost.com:8080/sampleapp/>. 
Reason: Error reading from remote server 
________________________________ 
Apache/2.2.21 (Unix) Server at samplehost.com Port 8080 

Lỗi này không đến lúc nào và cho đến nay chúng tôi nhận được điều này trong máy khách chỉ có IE. Trên cùng một máy khách với Firefox nó hoạt động tốt.

Sau đây là các dấu vết lỗi từ các bản ghi Apache cho một yêu cầu không

[Thu Mar 22 02:51:08 2012] [error] [client 10.36.64.137] (20014)Internal error: proxy: error reading status line from remote server localhost:8081, referer: http://samplehost.com:8080/sampleapp/opp/showSearchHome.htm 
[Thu Mar 22 02:51:08 2012] [error] [client 10.36.64.137] proxy: Error reading from remote server returned by /sampleapp/opp/searchResult.htm, referer: http://samplehost.com:8080/sampleapp/opp/showSearchHome.htm 

Không có gì là nhận được in trên các bản ghi tomcat khi một yêu cầu là không.

Sau đây là các phiên bản cài đặt thông tin liên quan của apache

-bash-3.00$ ./httpd -v 
Server version: Apache/2.2.21 (Unix) 
Server built: Sep 21 2011 20:00:58 

Khi cố gắng để tìm hiểu module nạp tôi nhận được lỗi sau

-bash-3.00$ /usr/local/apache2/bin/apachectl -t -D DUMP_MODULES 
httpd: Syntax error on line 64 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_authnz_ldap.so into server: ld.so.1: httpd: fatal: libldap-2.4.so.2: open failed: No such file or directory 
+0

Bạn có thể muốn thử những nỗ lực như thế này trong cấu hình apache (thử kết hợp khác nhau): // setenv lực-proxy-request-1.0 1 // S etEnv proxy-nokeepalive 1 // SetEnv proxy-initial-not-pooled 1 // KeepAlive Off (hoặc On) Nhiều người có vấn đề tương tự với các giải pháp khác nhau không may cho họ. Hoặc bạn thử chuyển từ Apache sang proxy ngược khác. – HelmuthB

+0

điều này có thể xảy ra trên firefox là tốt, có vẻ là một vấn đề https – virtualeyes

Trả lời

8

này không được đề cập trong bạn gửi nhưng tôi nghi ngờ bạn là khởi tạo một kết nối SSL từ trình duyệt đến Apache, nơi VirtualHosts được cấu hình, và Apache thực hiện một proxy revese cho Tomcat của bạn.

Có một lỗi nghiêm trọng trong (một số phiên bản?) Của IE gửi thông tin máy chủ 'sai' trong kết nối SSL (xem EDIT bên dưới) và gây nhầm lẫn cho Apache VirtualHosts. Trong ngắn hạn, tên máy chủ được trình bày là một trong những độ phân giải DNS ngược của IP, không phải là một trong URL.

Giải pháp thay thế là có một địa chỉ IP cho mỗi máy chủ ảo/tên máy chủ ảo. Là ngắn, bạn phải kết thúc với một cái gì đó giống như

1 máy chủ tên == 1 địa chỉ IP == 1 giấy chứng nhận == 1 Apache Virtual Host

EDIT

Mặc dù kết luận là chính xác, xác định các vấn đề được mô tả tốt hơn ở đây http://en.wikipedia.org/wiki/Server_Name_Indication

+0

Vì vậy, bạn không thể lưu trữ nhiều hơn một máy chủ ảo SSL trên cùng một IP? Điều này chỉ đơn giản là không thể đúng, như tôi đang làm nó ngay bây giờ. Tôi có một số trang web được thiết lập nơi apache2 chỉ hoạt động như một proxy. 2 trong số các trang web sử dụng SSL và nó hoạt động rất tốt. Tất cả các trang web đều nằm trong các IP nội bộ khác nhau, nhưng chỉ có một IP công cộng. –

+1

@Patrik Alienus. Bạn có thực sự kiểm tra các trang web của mình với các trình duyệt được liệt kê là không hỗ trợ SNI trong bài viết trên Wikipedia không? Nếu nó hoạt động thì có lẽ bạn nên sửa bài viết trên Wikipedia. Kinh nghiệm cá nhân của tôi là tôi phải đối mặt chính xác vấn đề này với khách hàng đang chạy IE trên XP. –

+0

Hmm không, chi tiết về SNI đã trốn tránh tôi:/Các trang web mà tôi đã chạy hoạt động tốt, không bao giờ có cửa sổ và/hoặc khách hàng di động được kết nối với họ. Tôi thực sự cho rằng nó sẽ giống nhau trong tất cả các trình duyệt. Vì thế...n/m Tôi đoán :) –

Các vấn đề liên quan