nginx過一段時間出現400 Bad Request 錯誤的解決方法

xusir發表於2013-08-21

 tomcat整合nginx成功後,等訪問一段時間後,會出現

Bad Request (Invalid Hostname)的錯誤,

因為是已經成功的配置,所以判定可能是哪裡的限制設定有問題,最後在官方網站找到解決辦法:

語法: large_client_header_buffers number size;
預設值:
large_client_header_buffers 4 8k;
上下文: httpserver

設定讀取客戶端請求超大請求的緩衝最大number(數量)和每塊緩衝的size(容量)。 HTTP請求行的長度不能超過一塊緩衝的容量,否則nginx返回錯誤414 (Request-URI Too Large)到客戶端。 每個請求頭的長度也不能超過一塊緩衝的容量,否則nginx返回錯誤400 (Bad Request)到客戶端。 緩衝僅在必需是才分配,預設每塊的容量是8K位元組。 即使nginx處理完請求後與客戶端保持入長連線,nginx也會釋放這些緩衝。

 

也就是設定一下

large_client_header_buffers就可以了.


補充:
因為之前用的是一個頂級域名zicheng.net,在搜尋別人的問題時看到了一個回答,這樣的域名會被解析出問題,最後換成一個二級域名hw.zicheng.net.這個Bad Request錯誤基本就沒出現過了.


相關文章