Cách chỉnh sửa nginx.conf để tăng kích thước tệp tải lên


105

Tôi muốn tăng thứ maximum file sizecó thể được tải lên.
Sau khi thực hiện một số nghiên cứu trực tuyến, tôi thấy rằng bạn phải chỉnh sửa tệp 'nginx.conf'.
Cách duy nhất hiện tại tôi có thể truy cập tệp này là truy cập Putty và nhập lệnh:

vi /etc/nginx/nginx.conf

Thao tác này sẽ mở tệp nhưng tôi có 2 câu hỏi bây giờ:

  1. Làm cách nào để chỉnh sửa tệp này?
  2. Tôi thấy trên mạng rằng bạn phải thêm dòng mã sau:

client_max_body_size 8M;

Tôi sẽ đặt dòng mã này ở nginx.confđâu?

Câu trả lời:


199

Thêm client_max_body_size

Bây giờ bạn đang chỉnh sửa tệp, bạn cần thêm dòng vào khối máy chủ, giống như vậy;

server {
    client_max_body_size 8M;

    //other lines...
}

Nếu bạn đang lưu trữ nhiều trang web, hãy thêm nó vào ngữ cảnh http như vậy;

http {
    client_max_body_size 8M;

    //other lines...
}

Và cũng cập nhật upload_max_filesizetệp php.ini của bạn để bạn có thể tải lên các tệp có cùng kích thước.

Tiết kiệm bằng Vi

Sau khi hoàn tất, bạn cần lưu, điều này có thể được thực hiện trong vi bằng cách nhấn escphím và nhập :wqvà quay lại.

Khởi động lại Nginx và PHP

Bây giờ bạn cần khởi động lại nginx và php để tải lại các cấu hình. Điều này có thể được thực hiện bằng cách sử dụng các lệnh sau;

sudo service nginx restart
sudo service php5-fpm restart

Hoặc bất kỳ dịch vụ php nào của bạn được gọi.


8
Có thể không phải là một ý tưởng tồi khi thêm nó vào http {ngữ cảnh để tất cả các máy chủ kế thừa nó. Và chắc chắn rằng bạn nên điều chỉnh upload_max_filesizetrong php.iniđể phù hợp với bối cảnh nginx của bạn. Nếu bạn đang chạy Laravel bằng Homestead / Vagrant, tệp đó được đặt tại /etc/php5/fpm/php.ini.
damiani

Có, tôi đã quên đề cập rằng tôi đang sử dụng Laravel Homestead. Vì vậy, tôi đã mở '/etc/php5/fpm/php.ini' và tìm thấy dòng mã 'upload_max_filesize = 2M', vì vậy tôi muốn thay đổi nó để '2M' trở thành '8M'. Sau khi thực hiện chỉnh sửa này, tôi chỉ cần nhấn 'Ctrl Z' để thoát khỏi tệp và sau đó chạy 'sudo service nging restart'?
Jeff P.

Bạn không nhấn ctrl-z Bạn cần lưu nó bằng vi nhấn esc, sau đó gõ: wq và nhấn enter.
Matt Burrow

2
Ra khỏi trình soạn thảo, thêm trước lệnh vi với sudo. Như vậy; sudo vi /etc/nginx/nginx.conf hoặc sudo vi /etc/php5/fpm/php.ini
Matt Burrow

2
sudo nginx -s reloadtải lại cấu hình mà không cần khởi động lại nginx
Vincnetas

12

Trong trường hợp nếu một người đang sử dụng proxy nginx làm bộ chứa docker (ví dụ: jwilder / nginx-proxy ), có cách sau để định cấu hình client_max_body_size(hoặc các thuộc tính khác):

  1. Tạo một tệp cấu hình tùy chỉnh, ví dụ /etc/nginx/proxy.confvới một giá trị phù hợp cho thuộc tính này
  2. Khi chạy một vùng chứa, hãy thêm nó dưới dạng một ổ đĩa, ví dụ: -v /etc/nginx/proxy.conf:/etc/nginx/conf.d/my_proxy.conf:ro

Cá nhân thấy cách này khá tiện lợi vì không cần phải xây dựng vùng chứa tùy chỉnh để thay đổi cấu hình. Tôi không liên kết với jwilder/nginx-proxy, chỉ đang sử dụng nó trong dự án của mình và cách được mô tả ở trên đã giúp tôi. Hy vọng nó cũng giúp ích cho người khác.


1
Dự án có liên quan này: github.com/evertramos/… (nginx-proxy từ jwilder kết hợp với tạo chứng chỉ từ allow encode) có một tập lệnh gọn gàng để thực hiện việc này và có tùy chọn này được cấu hình trước (đến 100M). Tạo .env từ mẫu; bỏ ghi chú dòng #USE_NGINX_CONF_FILES=true; chạy start.shvà cuối cùng docker-compose up. (Tôi không liên kết với một trong hai dự án).
glaux

2

Bạn có thể tăng kích thước client_max_body_size và upload_max_filesize + post_max_size suốt cả ngày. Nếu không điều chỉnh thời gian chờ HTTP, nó sẽ không bao giờ hoạt động.

// Bạn cần phải điều chỉnh điều này, và có thể ở phía PHP. client_body_timeout 2 phút // 1GB tải lên tệp


Thông tin thêm về cách điều chỉnh máy chủ web của bạn tại đây: doc.owncloud.com/server/admin_manual/configuration/files/…
Digital Human

2

Đầu tiên Điều hướng đường dẫn của php.ini

sudo vi /etc/php/7.2/fpm/php.ini

sau đó, thay đổi tiếp theo

upload_max_filesize = 999M
post_max_size = 999M

sau đó ESC-->:wq

Bây giờ cuối cùng Dán lệnh này,

sudo systemctl khởi động lại php7.2-fpm.service

Bạn xong việc rồi.

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.