Nginx常見(jiàn)問(wèn)題處理方法
(1)錯(cuò)誤碼400 bad request一般原因:請(qǐng)求的Header過(guò)大。解決方法:配置nginx.conf相關(guān)設(shè)置如下:
client_header_buffer_size 16k;
large_client_header_buffers 4 64k;
根據(jù)具體情況調(diào)整,一般適當(dāng)調(diào)整值就可以。
(2)錯(cuò)誤碼413 Request Entity Too Large一般原因:這個(gè)錯(cuò)誤一般在上傳文件的時(shí)候會(huì)出現(xiàn)。解決方法:配置nginx.conf相關(guān)設(shè)置如下:
client_max_body_size 10m; //根據(jù)自己需要上傳的文件的大小調(diào)整
如果運(yùn)行PHP的話,client_max_body_size要和php.ini中的如下值的最大值一致或者稍大,這樣就不會(huì)因?yàn)樘峤粩?shù)據(jù)大小不一致而出現(xiàn)錯(cuò)誤。php.ini設(shè)置如下:
post_max_size = 10M
upload_max_filesize = 2M
(3)錯(cuò)誤碼499 Client Closed Request一般原因:客戶端在未等到服務(wù)器端響應(yīng)返回前就關(guān)閉了客戶端的描述符。這個(gè)情況一般出現(xiàn)在自己開(kāi)發(fā)的客戶端設(shè)置了超時(shí)后,主動(dòng)關(guān)閉socket。解決方法:根據(jù)實(shí)際Nginx后端服務(wù)器的處理時(shí)間修改客戶端的超時(shí)時(shí)間。
(4)錯(cuò)誤碼502 Bad Gateway、503 Service Unavailable
一般原因:后端服務(wù)器響應(yīng)無(wú)法處理,業(yè)務(wù)中斷。解決方法:從后端服務(wù)器的日志中獲取請(qǐng)求處理失敗的具體線索,解決后端服務(wù)器的問(wèn)題。
(5)錯(cuò)誤碼504 Gateway Timeout一般原因:后端服務(wù)器在超時(shí)時(shí)間內(nèi),未響應(yīng)Nginx的代理請(qǐng)求。解決方法:Nginx中的2個(gè)配置項(xiàng)決定了它向后端請(qǐng)求時(shí)的超時(shí)時(shí)間,需要根據(jù)后端服務(wù)器的實(shí)際處理情況進(jìn)行調(diào)整。[插圖]
proxy_read_timeout 90; #讀取超時(shí),默認(rèn)為60秒
proxy_send_timeout 90; #發(fā)送超時(shí),默認(rèn)為60秒