(轉)Request Header Or Cookie Too Large(Nginx config)


看到huoding.com上有比較好的帖子,於是理解並用自己的話來描述啦

加大client_header_buffer_size和large_client_header_buffers可以解決問題,但是為毛要兩個參數來控制呢?一個不久可以滿足要求了么?

client_header_buffer_size用來緩存請求頭,如果超過的話就會返回400錯誤了。但是如果絕大多數請求不會超過這個值的話,那么更大的請求頭可以受large_client_headers_buffers的影響。

還是貼nginx的原話吧

  • client_header_buffer_size: Sets buffer size for reading client request header. For most requests, a buffer of 1K bytes is enough. However, if a request includes long cookies, or comes from a WAP client, it may not fit into 1K. If a request line or a request header field does not fit into this buffer then larger buffers, configured by the large_client_header_buffers directive, are allocated.
  • large_client_header_buffers: Sets the maximum number and size of buffers used for reading large client request header. A request line cannot exceed the size of one buffer, or the 414 (Request-URI Too Large) error is returned to the client. A request header field cannot exceed the size of one buffer as well, or the 400 (Bad Request) error is returned to the client. Buffers are allocated only on demand. By default, the buffer size is equal to 8K bytes. If after the end of request processing a connection is transitioned into the keep-alive state, these buffers are released.

用兩個參數來控制緩存大小的原因是為了平衡內存資源和處理速度的矛盾。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM