2012-01-14 26 views
5
Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data. 

Tôi gặp lỗi này trên máy chủ EC2 amazon của mình. Điều này không xảy ra trên một trang cụ thể trên trang web của tôi. Tôi không nghĩ đó là lỗi trình duyệt Chrome bởi vì khi tôi mở safari tôi không nhận được lỗi, tôi nhận được một trang trắng. Không chắc chắn những gì đang xảy ra hoặc tại sao. Về cơ bản, tôi đang tìm nguyên nhân gốc rễ cho lỗi máy chủ này. Bất kỳ ý tưởng sẽ được nhiều đánh giá cao. Nếu bạn cần tôi cung cấp bất kỳ thông tin cụ thể nào, hãy cho tôi biết.Lỗi 324 phản hồi trống trên Ứng dụng được lưu trữ bởi AWS

Nghĩ lại thì lỗi này bắt đầu xảy ra khi chúng tôi nâng cấp lên trình điều khiển php mongo 1.2.7. Suy nghĩ?

+0

Đây có lẽ là apache lỗi segmentation. Kiểm tra nhật ký lỗi apache. – CappY

Trả lời

3

Xảy ra sự cố với curl từ dòng lệnh. Ví dụ: http://aws.amazon.com/

$ curl -i http://aws.amazon.com/ 
HTTP/1.1 200 OK 
Date: Tue, 08 May 2012 19:55:14 GMT 
Server: Server 
x-amz-id-1: 0C8YK9MYJMCCSE8R09E5 
x-amz-id-2: zx0HtU9Ub39tobXNBiMRLuE2mvnhQo4Kh1fyj0MdJcg= 
Cache-Control: max-age=0 
Expires: Tue, 08 May 2012 19:55:14 GMT 
Content-Type: text/html; charset=UTF-8 
Set-cookie: aws-session-id-time=2082758401l; path=/; domain=.amazon.com; expires=Tue, 01-Jan-2036 00:00:01 GMT 
Set-cookie: aws-session-id=000-0000000-0000000; path=/; domain=.amazon.com; expires=Tue, 01-Jan-2036 00:00:01 GMT 
Vary: User-Agent 
Transfer-Encoding: chunked 
... 

-i bao gồm tiêu đề. Bạn sẽ thấy mã trạng thái thực tế và sau đó tương quan với access_logerror_log của mình. :)

Hãy cho tôi biết nếu điều này có ích!

+1

Tôi đang gặp vấn đề tương tự. Ngoại trừ một CURL cho tôi thấy HTML chỉ tốt, nhưng nó không tải lên trong một trình duyệt.Điều gì trên thế giới có thể gây ra một cái gì đó như thế này: (Mọi thứ đều ổn cho đến đêm qua. – Angad

+0

Cookie? Một phiên? Tôi không chắc điều gì khác vì câu hỏi của bạn khá mơ hồ. Có thể sử dụng trình gỡ rối (trong Chrome: CMD + Option + J) và xem những gì trình duyệt nói? – Till

0

Chỉ muốn ghi lại câu trả lời của tôi cho vấn đề tuyệt đối này. Đối với tôi, curl đã hiển thị đúng HTML, nhưng trình duyệt của tôi thì không.

Tôi đã vô hiệu hóa ngay Session Stickiness từ Bảng điều khiển AWS cho LoadBalancer của tôi và nó hoạt động tốt ngay bây giờ.

@ Till của curl lời khuyên là rực rỡ :)

Chỉnh sửa: Làm thế nào để bạn quản lý vấn đề này trong thời gian tới khi bạn cần phiên dính? Tôi không có ý kiến. Nhưng phải có câu trả lời về điều này ngoài kia!

+1

Cảm ơn, rất vui được trợ giúp.Không "phiên dính" với ELB tham khảo chuyển hướng người dùng đến cùng một máy chủ luôn luôn? Nếu vậy, tôi tránh những thứ như vậy và sử dụng một cửa hàng phiên trung tâm (memcache) với MySQL để kiên trì) và chuyển hướng người dùng đến máy chủ với tải ít nhất. – Till

0

Chỉ trong trường hợp bất kỳ ai khác nhìn thấy câu hỏi này và câu trả lời @ Till không giúp ích gì. Tôi muốn chỉ ra cân bằng tải đàn hồi của Amazon có thời gian chờ 60 giây được mã hóa cứng. Không có cách nào để vô hiệu hóa nó.

https://forums.aws.amazon.com/thread.jspa?threadID=33427&start=0&tstart=50

Bạn cần phải thêm một "nhịp tim" trang của bạn, để trả lại dữ liệu thông qua kết nối HTTP. ELB giám sát hoạt động và sẽ giữ cho phiên của bạn còn sống.

Điều này có thể quá tải đối với một số ứng dụng, nó sẽ loại bỏ hoàn toàn bất kỳ bộ đệm php nào đã được khởi động và xóa dữ liệu tới máy chủ web. Ngoài ra, GZIP cần phải được vô hiệu hóa tại máy chủ web (apache, hoặc khác).

Tập lệnh trả về một lượng lớn dữ liệu, khoảng 64.000 khoảng trắng. Các không gian đơn liên tiếp bị bỏ qua bởi trình duyệt, vì vậy thường dễ dàng định cấu hình trang của bạn để sử dụng các chức năng này mà không có bất kỳ mối quan tâm nào về hiển thị.

Bạn cũng không cần gọi hàm này thường xuyên. Bạn có 60 giây, tôi thường cố gắng và làm cho tôi chạy mỗi 10 đến 15 giây, nhưng vì nó ngủ trong một giây, đừng gọi nó quá thường xuyên hoặc bạn sẽ thấy sự chậm lại đáng kể trong trang của mình.

Dưới đây là các chức năng:

function ELB_HeartBeat(){ 
echo str_repeat(' ',1024*64); 

ob_implicit_flush(true); 
while (@ob_end_flush()); 

@flush(); 
@ob_flush(); 

sleep(1); } 
Các vấn đề liên quan