tải lên các tệp lớn hơn 1MB = đặt lại kết nối


8

Tôi đang sử dụng nginx trên frontend dưới dạng "bộ đệm proxy" và apache trên phần phụ trợ, tôi đã đặt các cài đặt PHP của mình như sau:

error_log = /var/www/site1/php_error.log
error_reporting = 22527
file_uploads = On
log_errors = On
max_execution_time = 0
max_file_uploads = 20
max_input_time = -1
memory_limit = 512M
post_max_size = 0
upload_max_filesize = 1000M

Có vấn đề gì vậy? Tải lên các tệp dưới 1 MB là thành công nhưng bất cứ điều gì lớn hơn thế, Google Chrome đều xuất ra:

Error 101 (net::ERR_CONNECTION_RESET): The connection was reset.

Tôi đã kiểm tra tệp nhật ký lỗi nhưng nó không tồn tại trong thư mục. Tôi cũng đã kiểm tra /var/log/httpd/error_lognhưng không có vấn đề liên quan đến tải lên. Tôi không biết bất cứ điều gì khác có thể gây ra vấn đề vì vậy tôi đã đưa tay ra giúp bạn. Cảm ơn!


Ý bạn là lớn hơn 1GB? Hãy nhìn vào tiêu đề câu hỏi của bạn!
Ilia Rostovtsev

uh ... ý tôi là
Jürgen Paul

hmm .. được rồi, xin lỗi Bạn vừa thiết lập PHP upload_max_filesize = 1000M và tôi sẽ không nghĩ rằng tải lên 1 MB có thể thất bại! Chỉ muốn kiểm tra lại.
Ilia Rostovtsev

Câu trả lời:


10

Tôi phát hiện ra vấn đề, Vấn đề là với

Trong nginx.conf:

http {
    client_max_body_size 0;
}

Tôi đặt client_max_body_sizera 0. mặc định là 1M.


Cảm ơn. Khám phá nhỏ: trong tài liệu của nginx có ghi "Nếu độ dài nội dung đã nêu lớn hơn kích thước này, thì máy khách sẽ nhận được mã lỗi HTTP 413 (" Thực thể yêu cầu quá lớn "). Cần lưu ý rằng trình duyệt web không thường biết cách hiển thị đúng lỗi HTTP như vậy. " wiki.nginx.org/HttpCoreModule Đó là lý do tại sao, có lẽ, thông báo lỗi không chính xác.
Fedir RYKHTIK

Tôi có thể đến bữa tiệc muộn nhưng có điều gì đó tương tự sẽ hoạt động với Apache không?
henrywright

0

Tại sao post_max_size = 0vậy?

Nó nên có ít nhất 1000Mtrong trường hợp của bạn, vì hầu hết các tải lên là yêu cầu POST.


4
Không phải là 0 là không giới hạn sao?
Jürgen Paul
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.