nginx 414 Request-URI Too Large原因及解决方法
癥狀
頁(yè)面提示414 Request-URI Too Large
可能原因
場(chǎng)景1.cookie中寫(xiě)入的值太大造成的,因?yàn)閔eader中的其他參數(shù)的size一般比較固定,只有cookie可能被寫(xiě)入較大的數(shù)據(jù)
場(chǎng)景2.請(qǐng)求參數(shù)太長(zhǎng),比如發(fā)布一個(gè)文章正文,用urlencode后,使用get方式傳到后臺(tái)。
GET http://www.264.cn/ HTTP/1.1 Host: www.264.cn Connection: keep-alive Cache-Control: max-age=0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 Accept-Encoding: gzip,deflate,sdch Accept-Language: zh-CN,zh;q=0.8 Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3 Cookie: bdshare_firstime=1363517175366; If-Modified-Since: Mon, 13 May 2013 13:40:02 GMT
當(dāng)請(qǐng)求頭過(guò)大時(shí),超過(guò)large_client_header_buffer時(shí),nginx可能返回"Request URI too large" (414)或者"Bad-request"(400)錯(cuò)誤。
如上例HTTP請(qǐng)求頭由多行構(gòu)成,其中"GET http://www.264.cn/ HTTP/1.1"表示Request line
當(dāng)Request line的長(zhǎng)度大于large_client_header_buffer的一個(gè)buffer(128k)時(shí),nginx會(huì)返回"Request URI too large" (414)錯(cuò)誤,對(duì)應(yīng)上面的場(chǎng)景2。
請(qǐng)求投中最長(zhǎng)的一行也要小于large_client_header_buffer,當(dāng)不是Request line的最長(zhǎng)行大于一個(gè)buffer(128k)時(shí),會(huì)返回"Bad-request"(400)錯(cuò)誤,對(duì)應(yīng)上面的場(chǎng)景1。
解決辦法
方法一
在nginx.conf里面把這兩個(gè)緩存加大就行
client_header_buffer_size?512k;
large_client_header_buffers?4?512k;
修改配置文件后,需要reload或者重啟nginx
解決辦法(二)
前端改用post 請(qǐng)求傳遞參數(shù)
解決辦法(三)
服務(wù)端修改接受參數(shù)行為
總結(jié)
以上是生活随笔為你收集整理的nginx 414 Request-URI Too Large原因及解决方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 荣耀magicv使用感受,荣耀Magic
- 下一篇: 联想售后维修服务网点电话,联络售后服务电