Nginx 文件上傳大小限制及 client_max_body_size最大值問題記錄
一、默認(rèn)值與錯誤提示
- 默認(rèn)值:
client_max_body_size 1m; - Nginx 默認(rèn)允許的請求體最大為 1 MiB,超過該值會返回 413 Request Entity Too Large 錯誤。
- 錯誤提示示例:
HTTP/1.1 413 Request Entity Too Large
Content-Type: text/html
二、如何配置 client_max_body_size
該指令可放置在 http、server 或 location 塊中,后者會覆蓋前者的配置:
http {
# 全局設(shè)置,作用于所有 server
client_max_body_size 50m;
server {
listen 80;
server_name example.com;
# 針對某個虛擬主機單獨設(shè)置
client_max_body_size 100m;
location /upload {
# 針對特定路徑再度覆蓋
client_max_body_size 200m;
proxy_pass http://backend;
}
}
}說明:在嵌套塊中聲明的
client_max_body_size會覆蓋祖先塊中的同名指令citeturn1search1。
單位:支持k、m、g(不區(qū)分大小寫),如10K、2m、1G。
三、client_max_body_size 的最大上限
Nginx 在內(nèi)部將該值存儲為 C 語言類型 off_t,其位寬決定了上限:
64 位可執(zhí)行文件
off_t為 64 位有符號整數(shù),理論最大值為 2?³ − 1 字節(jié)(約 9.22×10¹? 字節(jié),≈ 8 EiB),故可將client_max_body_size設(shè)置至2^63而不報錯。
32 位可執(zhí)行文件(未啟用大文件支持)
off_t為 32 位有符號整數(shù),其最大值約為 2³¹ − 1(約 2 GiB),即 2147483647 字節(jié)。若需突破此限制,可在編譯時定義_FILE_OFFSET_BITS=64啟用大文件支持,使off_t拓展至 64 位。
四、取消大小檢查(無限制上傳)
將 client_max_body_size 設(shè)置為 0,可禁用對請求體大小的檢查,允許無限制上傳或 POST 請求:
server {
listen 80;
server_name unlimited.example.com;
# 取消大小限制
client_max_body_size 0;
location / {
proxy_pass http://backend;
}
}說明:設(shè)置為
0時,Nginx 不再在自身層面攔截任何大小的請求體。
五、實戰(zhàn)示例
按需放寬單接口限制
server {
listen 80;
server_name upload.example.com;
# 默認(rèn)允許 10MiB
client_max_body_size 10m;
location /api/v1/upload {
# 單接口放寬至 500MiB
client_max_body_size 500m;
proxy_pass http://backend_upload;
}
}開啟無限制上傳
server {
listen 80;
server_name files.example.com;
# 完全取消 Nginx 層面的大小限制
client_max_body_size 0;
location /files {
proxy_pass http://backend_files;
}
}六、配置驗證
# 檢查配置語法 nginx -t # 重載 Nginx(應(yīng)用新配置) nginx -s reload
隨后可使用 curl 或前端上傳大文件,確認(rèn)是否仍出現(xiàn) 413 錯誤,并查看 /var/log/nginx/error.log 以排查問題。
七、小結(jié)
- 核心指令:
client_max_body_size決定 Nginx 層面的請求體大小上限。 - 默認(rèn)值:1 MiB(
1m)。 - 最大上限:由
off_t位寬決定,64 位環(huán)境支持至 2?³ − 1 字節(jié),32 位環(huán)境(未啟用大文件支持)限約 2 GiB。 - 取消限制:設(shè)置為
0即可禁用檢查,允許無限制上傳。
通過上述配置與示例,您可以靈活地調(diào)整或取消 Nginx 的上傳大小限制,滿足從小型表單到超大文件傳輸?shù)母鞣N業(yè)務(wù)需求。
到此這篇關(guān)于Nginx 文件上傳大小限制及 client_max_body_size最大值問題記錄的文章就介紹到這了,更多相關(guān)nginx 文件上傳大小限制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nginx編譯安裝后對nginx進(jìn)行平滑升級的方法
nginx編譯安裝后用了一段時間后發(fā)現(xiàn)當(dāng)前版本有漏洞或需要新的功能時就需要對當(dāng)前nginx版本進(jìn)行版本升級,所以這時就需到對nginx的平滑升級,如何進(jìn)行平滑升級,下面就一起來了解一下2018-12-12
Windows的CMD窗口如何查看并殺死nginx進(jìn)程
這篇文章主要介紹了Windows的CMD窗口如何查看并殺死nginx進(jìn)程問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-06-06
Nginx屏蔽服務(wù)器名稱與版本信息方式(源碼級修改)
本文詳解如何通過源碼修改Nginx 1.25.4,移除Server響應(yīng)頭中的服務(wù)類型和版本信息,以增強安全性,需重新配置、編譯、安裝,升級時需重復(fù)此操作2025-09-09
Nginx反向代理配置React前端與Python后端全過程
前后端分離項目里,前端通常是 React 打包后的靜態(tài)資源,后端是 Python(FastAPI/Flask)提供的 API,生產(chǎn)環(huán)境一般用 Nginx 做統(tǒng)一入口,本文只講 Nginx 反向代理的核心配置思路和關(guān)鍵片段,需要的朋友可以參考下2026-02-02

