介紹如何解決 Nginx 網頁伺服器出現 client intended to send too large body 的錯誤。

如果 Nginx 伺服器出現了 client intended to send too large body 的錯誤,代表使用者(client)送出的請求內容大小(標示於標頭的 Content-Length 欄位)超過 Nginx 伺服器 client_max_body_size 設定的上限值(預設值為 1 MB)。當出現這個錯誤時,Nginx 會回應 413(Request Entity Too Large)的錯誤代碼給使用者的瀏覽器。

若要解決這個問題,可以編輯 Nginx 伺服器的設定檔(例如 /etc/nginx/nginx.conf),調整這個設定值:

http {
    # ...

    # 設定請求內容大小上限值為 10MB
    client_max_body_size 10m;

    # ...
}

client_max_body_size 這個設定項目可以放在 httpserverlocation 三種區塊中。

如果想要讓請求內容大小沒有限制,可以直接將 client_max_body_size 的值設定為 0

http {
    # ...

    # 設定請求內容大小無限制
    client_max_body_size 0;

    # ...
}

除了這個 Nginx 伺服器的設定之外,PHP 的 post_max_sizeupload_max_filesize 設定也會跟 413(Request Entity Too Large)錯誤代碼有關係,除錯時可以一併檢查。

參考資料