Nginx服務(wù)器錯(cuò)誤一般有以下8個(gè)原因,每一種原因下方,分別給出了解決的方法,如下:

1、請(qǐng)求的header過大。nginx默認(rèn)的header長(zhǎng)度上限是4k,如果超過了這個(gè)值,nginx會(huì)直接返回400錯(cuò)誤。
解決方法:配置nginx.conf相關(guān)設(shè)置??梢酝ㄟ^以下2個(gè)參數(shù)來調(diào)整header上限:client_header_buffer_size 16k;large_client_header_buffers 4 16k。
2、上傳文件過程中出現(xiàn)錯(cuò)誤。這時(shí)瀏覽器顯示“413 Request Entity Too Large”。這是因?yàn)闆]有設(shè)置client_max_body_size,這個(gè)參數(shù)默認(rèn)只是1M,也就是說發(fā)布的文章內(nèi)容大小不能超過1M。
解決方法:增加如下兩行到nginx.conf的http{}段, 增大nginx上傳文件大小限制:設(shè)置允許發(fā)布內(nèi)容為8M:client_max_body_size 8M;client_body_buffer_size 128k。
另外如果運(yùn)行的是php,那么還要檢查php.ini,這個(gè)大小client_max_body_size要和php.ini中的如下值的最大值一致或者稍大,這樣就不會(huì)因?yàn)樘峤粩?shù)據(jù)大小不一致出現(xiàn)的錯(cuò)誤:post_max_size = 8M;upload_max_filesize = 6M。
修改完配置后,別忘記重新加載。
3、客戶端在為等到服務(wù)器相應(yīng)返回前就關(guān)閉了客戶端描述符。一般出現(xiàn)在客戶端設(shè)置超時(shí)后,服務(wù)器主動(dòng)關(guān)閉。
解決方法:根據(jù)實(shí)際Nginx后端服務(wù)器的處理時(shí)間修改客戶端超時(shí)時(shí)間。
4、腳本錯(cuò)誤(php語法錯(cuò)誤、lua語法錯(cuò)誤)。
解決方法:查看nginx_err_log php_err_log。
5、訪問量過大,系統(tǒng)資源限制,不能打開過多文件。 磁盤空間不足。(access log開啟可能導(dǎo)致磁盤滿溢,服務(wù)器主動(dòng)關(guān)閉)。
解決方法:修改/etc/sysctl.conf文件,并使用下面的命令確認(rèn): #sysctl -p。要使 limits.conf 文件配置生效,必須要確保 pam_limits.so 文件被加入到啟動(dòng)文件中。
6、后端服務(wù)無法處理,業(yè)務(wù)中斷。
解決方法:從后端日志獲取錯(cuò)誤原因,解決后端服務(wù)器問題。
7、后端服務(wù)器在超時(shí)時(shí)間內(nèi),未響應(yīng)Nginx代理請(qǐng)求。
解決方法:根據(jù)后端服務(wù)器實(shí)際處理情況,調(diào)正后端請(qǐng)求超時(shí)時(shí)間。
8、網(wǎng)站頁面緩存過大。
解決方法:配置nginx.conf相關(guān)設(shè)置:fastcgi_buffers 8 128k;send_timeout 60。