閱讀700 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Nginx反向代理解決超長請求串

Nginx遇到超長的post或get請求時,nginx會反回413、400、414錯誤。

post和get方式的解決辦法:

針對post方式

client_max_body_size 10M;

指定允許客戶端請求的最大的單個文件大小,如果請求大於指定的值,客戶端將收到一個"413 Request Entity Too Large"錯誤。

client_body_in_single_buffer 16k;

指定連接請求使用的緩存區大小,如果連接請求超過緩存區指定的值,那麼這些請求或部分請求將嚐試寫入一個臨時文件。

client_body_temp_path /data/tmp;

設置臨時文件存放路徑。隻有當上傳的請求體超出緩存區大小時,才會寫到臨時文件中,注意路徑要有寫入權限。

針對get方式

client_header_buffer_size 8k;

指定客戶端請求的http頭部緩存區大小,大多數情況下一個頭部請求的大小不會大於1k,不過如果有來自於wap客戶端的較大的cookie它可能會大於1k,Nginx將分配給它一個更大的緩存區,這個值可以在large_client_header_buffers裏麵設置。

large_client_header_buffers 16 16k;

如果設置過小HTTP頭/Cookie過大時會報400錯誤"nginx 400 bad request ",如果超過buffer就會報"414 Request URI too large"錯誤,nginx接受最長的HTTP頭部大小必須比其中一個buffer大,否則就會報"nginx 400 bad request "錯誤。

最後更新:2017-07-02 11:27:08

  上一篇:go  Windows2008R2密碼策略更改
  下一篇:go  nginx反代上傳出現413錯誤