首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Nginx 調整上傳檔案大小限制完整步驟

     編輯:更多程式設計知識

問題現象

Nginx 反向代理後端應用時,上傳超過 1 MB 的檔案失敗,預設 client_max_body_size 為 1 MB。

解決步驟

1. 找到正確的設定檔層級

Nginx 設定遵循繼承規則:http → server → location。若在 nginx.conf 的 http 階層設定,所有 server 繼承;若在個別 server 或 location 覆寫,以最內層為準。

2. 修改對應的 server/location 區塊

# 範例:針對特定虛擬主機的 location 區塊
server {
    listen 80;
    server_name chat.erp.example.com;

    location / {
        proxy_pass https://tomcat_upstream;
        # 關鍵設定:允許最大 1000 MB 上傳
        client_max_body_size 1000m;
        # 可選:增加 proxy 讀寫逾時,防大檔上傳中斷
        proxy_read_timeout 300s;
        proxy_send_timeout 300s;
    }
}

3. 重新載入設定

nginx -t          # 語法檢查
nginx -s reload   # 平滑重載

常見誤區

  • 只改 http 層卻被 server 層覆寫:檢查是否有 include domains/*; 等外部引入,實際生效設定在子檔案中。
  • 單位寫錯:1000m = 1000 MB,1g = 1 GB,區分大小寫。
  • 忘記後端應用同步調整:Tomcat 需設定 maxPostSize、Spring Boot 需 spring.servlet.multipart.max-file-size、PHP 需 upload_max_filesize 等。

驗證方法

# 使用 curl 測試 10 MB 檔案上傳
dd if=/dev/zero of=10mb.bin bs=1M count=10
curl -X POST -F "file=@10mb.bin" https://chat.erp.example.com/upload

若回傳 200 且後端收到完整檔案,即設定生效。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved