您好,登錄后才能下訂單哦!
這篇文章主要介紹nginx如何處理request body參數配置,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
通常情況下,nginx與客戶端是公網連接,nginx與上游服務是內網連接,內網帶寬遠遠高于公網帶寬。 nginx對request body的處理默認是先接受完所有的數據,再轉發到上游服務。
在ngx_http_core_module搜索body
,有如下配置:
client_body_buffer_size:
Syntax: client_body_buffer_size size; Default: client_body_buffer_size 8k|16k; Context: http, server, location
設置用于讀取客戶端請求正文的緩沖區大小。 如果請求主體大于緩沖區,則將整個主體或僅將其一部分寫入臨時文件。 默認情況下,緩沖區大小等于兩個內存頁。 在x86,其他32位平臺和x86-64上為8K。 在其他64位平臺上,通常為16K。
如果request body的大小小于此值,則只分配所需大小。如果大于此值,則會申請這里定義的內存大小,并且復用這塊內存,直至接收body完畢。
Kong代理客戶端請求使用nginx默認值,可通過環境變量修改
KONG_CLIENT_BODY_BUFFER_SIZE=20m
.Kong的admin api默認是10m。需要注意的是,理論上此值較小,只是讀寫硬盤次數增加,影響上傳速度,不會產生錯誤。但是日志出現
nginx Connection reset by peer
上傳失敗錯誤,原因可能是上游服務處理過程太慢,導致前端nginx超時斷開連接。
client_body_timeout
Syntax: client_body_timeout time; Default: client_body_timeout 60s; Context: http, server, location
定義讀取客戶端請求正文的超時。 僅在兩次連續讀取操作之間的一段時間內設置超時,而不是為整個請求主體的傳輸設置超時。 如果客戶端在此時間內未傳輸任何內容,則請求將終止并顯示408(請求超時)錯誤。
client_max_body_size
Syntax: client_max_body_size size; Default: client_max_body_size 1m; Context: http, server, location
設置客戶端請求正文的最大允許大小,在“ Content-Length”請求標頭字段中指定。 如果請求中的大小超過配置的值,則會向客戶端返回413(請求實體太大)錯誤。 請注意,瀏覽器無法正確顯示此錯誤。 將size設置為0將禁用對客戶端請求主體大小的檢查。
k8s ingress設置,增加注解:nginx.ingress.kubernetes.io/proxy-body-size: 100m。
Kong默認值是0,即無限制。
client_body_in_file_only
client_body_in_single_buffer
client_body_temp_path
以上是“nginx如何處理request body參數配置”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。