2011-09-08 11 views
10

Tôi đang chạy một ứng dụng Django trên nền tảng Linux với gunicorn và Nginx. Tôi cho phép người dùng tải lên tệp CSV (khoảng 2MB) mà ứng dụng xử lý và thêm vào cơ sở dữ liệu phụ trợ. Vấn đề là đối với các tệp lớn, có vẻ như đã hết thời gian chờ sau khoảng 2 hoặc 3 phút và một trang có tiêu đề 404 Not Found nginx/0.7.6 được hiển thị. Tuy nhiên, URL không thay đổi - tức là URL đó vẫn là URL của trang tải lên tệp của ứng dụng của tôi.Hết giờ khi tải lên một tệp lớn?

Các Nginx show log lỗi:

2011/09/08 13:28:05 [lỗi] 1349 # 0: * 303 thượng nguồn timed out (110: Connection timed out) khi đọc tiêu đề phản hồi từ thượng nguồn, khách hàng: 213.146.112.122, máy chủ: _, yêu cầu: "POST/app/import_csv/HTTP/1.1", upstream:

Bất kỳ ý tưởng gì đang xảy ra? Làm thế nào tôi có thể tăng thời gian chờ này?

+0

Tệp lớn bao nhiêu? –

+0

Tệp có dung lượng khoảng 2MB. Tôi đã cập nhật câu hỏi với thông tin này. Cảm ơn. – dougv

Trả lời

14

Tôi nói thêm:

proxy_read_timeout 1200; 

để nginx.conf. Điều này làm tăng thời gian chờ từ mặc định đã khắc phục sự cố. Có lẽ tôi không cần sử dụng 1200, nó chỉ là giá trị đầu tiên tôi đã thử.

+0

Thực hiện tốt. Bạn có thể chấp nhận câu trả lời của bạn. – christophe31

+1

Apache tương đương là: ProxyTimeout giây (mặc định là 300), và tương đương Gunicorn là: -t giây (mặc định là 30 !!). tài liệu tham khảo: http://httpd.apache.org/docs/2.0/mod/mod_proxy.html#proxytimeout, http://gunicorn.org/configure.html#timeout – tutuDajuju