Tôi đang chạy nginx / ruby-on-rails và tôi có một biểu mẫu nhiều phần đơn giản để tải tệp lên. Mọi thứ hoạt động tốt cho đến khi tôi quyết định hạn chế kích thước tối đa của các tệp mà tôi muốn tải lên. Để làm điều đó, tôi đặt nginx client_max_body_size
thành 1m (1MB) và mong đợi trạng thái HTTP 413 (Đối tượng yêu cầu quá lớn) để phản hồi khi quy tắc đó bị phá vỡ.
Vấn đề là khi tôi tải lên tệp 1,2 MB, thay vì hiển thị trang lỗi HTTP 413, trình duyệt bị treo một chút và sau đó chết với thông báo "Kết nối đã được đặt lại trong khi trang đang tải".
Tôi đã thử tất cả các tùy chọn mà nginx cung cấp, dường như không có gì hoạt động. Có ai có bất kỳ ý tưởng về điều này?
Đây là nginx.conf của tôi:
worker_processes 1;
timer_resolution 1000ms;
events {
worker_connections 1024;
}
http {
passenger_root /the_passenger_root;
passenger_ruby /the_ruby;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name www.x.com;
client_max_body_size 1M;
passenger_use_global_queue on;
root /the_root;
passenger_enabled on;
error_page 404 /404.html;
error_page 413 /413.html;
}
}
Cảm ơn.
**Edit**
Môi trường / UA: Windows XP / Firefox 3.6.13
Content-Length
hơn là gửiTransfer-Encoding: chunked
.