溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

nginx提示500 Internal Server Error錯(cuò)誤怎么解決

發(fā)布時(shí)間:2022-04-25 15:34:46 來(lái)源:億速云 閱讀:498 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要講解了“nginx提示500 Internal Server Error錯(cuò)誤怎么解決”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“nginx提示500 Internal Server Error錯(cuò)誤怎么解決”吧!

在高并發(fā)連接的情況下,nginx是apache服務(wù)器不錯(cuò)的替代品。nginx同時(shí)也可以作為7層負(fù)載均衡服務(wù)器來(lái)使用。根據(jù)測(cè)試結(jié)果,nginx 0.6.31 + php 5.2.6 (fastcgi) 可以承受3萬(wàn)以上的并發(fā)連接數(shù),相當(dāng)于同等環(huán)境下apache的10倍。
但很多人用 nginx 的時(shí)候都會(huì)出現(xiàn) 500 錯(cuò)誤,根據(jù)我使用的情況來(lái)看,很大一部分原因是 因?yàn)槲募蜷_(kāi)句柄太小有關(guān)。
在linux 下 使用這個(gè)命令增加進(jìn)程打開(kāi)的文件句柄。
ulimit -shn 51200
默認(rèn)只用1000 當(dāng)鏈接數(shù)小的時(shí)候看不出來(lái),使用這種處理方法可以有效防止500錯(cuò)誤出現(xiàn)。
今天訪(fǎng)問(wèn)網(wǎng)站的時(shí)候,偶爾會(huì)遇上500 internal server error的錯(cuò)誤提示頁(yè)面.
查了相關(guān)資料認(rèn)為是訪(fǎng)問(wèn)過(guò)大,系統(tǒng)內(nèi)核進(jìn)程受限才出現(xiàn)的.
答案如下:
$ ulimit -n
11095
程序限制只能打開(kāi)11095個(gè)文件,ulimit命令是設(shè)置當(dāng)前用戶(hù)一個(gè)進(jìn)程可擁有的文件描述符的數(shù)量.
看來(lái)是模擬的并發(fā)數(shù)太多了,需要調(diào)整一下nginx.conf的并發(fā)設(shè)置數(shù),(我的配置主機(jī)的內(nèi)存2g,cpu為2.8g,)

復(fù)制代碼 代碼如下:

vi /etc/nginx/nginx.conf
events {
worker_connections 1024;
}

調(diào)整為

復(fù)制代碼 代碼如下:

events {
worker_connections 10240;
}

還是會(huì)出現(xiàn)上面問(wèn)題,使用
[root@qimutian nginx]# cat /proc/sys/fs/file-max
8192
文件系統(tǒng)最大可打開(kāi)文件數(shù)
[root@qimutian nginx]# ulimit -n
1024
程序限制只能打開(kāi)1024個(gè)文件
使用[root@qimutian nginx]# ulimit -n 8192調(diào)整一下
或者永久調(diào)整打開(kāi)文件數(shù) 可在啟動(dòng)文件/etc/rc.d/rc.local末尾添加(在/etc/sysctl.conf末尾添加fs.file-max=8192)
ulimit -n 8192
調(diào)整centos5文件打開(kāi)數(shù)
使用ulimit -a一下,發(fā)現(xiàn)open files不能默認(rèn)超過(guò)1024,昨天的在進(jìn)行壓力測(cè)試時(shí),出現(xiàn)500錯(cuò)誤,具體請(qǐng)查看
nginx出現(xiàn) 500 internal server error
早上起來(lái)看一下,發(fā)現(xiàn)原來(lái)是通過(guò)如下方式調(diào)整
方法1 (永久調(diào)整)
vi /etc/security/limits.conf
在文件末加上:
* soft nofile 8192
* hard nofile 20480
同時(shí)vi /etc/sysctl.conf末尾添加
fs.file-max=8192
重新啟動(dòng),在使用ulimit -n查看的數(shù)已經(jīng)是8192
方法2 (臨時(shí)用)
直接在終端輸入 ulimit -n 8192 按回車(chē)就ok了
500 internal server error錯(cuò)誤補(bǔ)充:
1、硬盤(pán)空間滿(mǎn)了
使用 df -k 查看硬盤(pán)空間是否滿(mǎn)了。清理硬盤(pán)空間就可以解決500錯(cuò)誤。nginx如果開(kāi)啟了access log,在不需要的情況下,最好關(guān)閉access log。access log會(huì)占用大量硬盤(pán)空間。
2、nginx配置文件錯(cuò)誤
這里不是指語(yǔ)法錯(cuò)誤,nginx如果配置文件有語(yǔ)法錯(cuò)誤,啟動(dòng)的時(shí)候就會(huì)提示。當(dāng)配置rewrite的時(shí)候,有些規(guī)則處理不當(dāng)會(huì)出現(xiàn)500錯(cuò)誤,請(qǐng)仔細(xì)檢查自己的rewrite規(guī)則。如果配置文件里有些變量設(shè)置不當(dāng),也會(huì)出現(xiàn)500錯(cuò)誤,比如引用了一個(gè)沒(méi)有值的變量。
3、如果上面的問(wèn)題都不存在可能是模擬的并發(fā)數(shù)太多了,需要調(diào)整一下nginx.conf的并發(fā)設(shè)置數(shù)
解決方法是:
1 打開(kāi)/etc/security/limits.conf文件,加上兩句

復(fù)制代碼 代碼如下:

* soft nofile 65535
* hard nofile 65535

2 打開(kāi)/etc/nginx/nginx.conf
在worker_processes的下面增加一行

復(fù)制代碼 代碼如下:

worker_rlimit_nofile 65535;

3 重新啟動(dòng)nginx,重新載入設(shè)置

復(fù)制代碼 代碼如下:

kill -9 `ps -ef | grep php | grep -v grep | awk '{print $2}'`
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -c 100 -u www-data -f /usr/bin/php-cgi
killall -hup nginx

重啟后再看nginx的錯(cuò)誤日志,也沒(méi)有發(fā)現(xiàn)500報(bào)錯(cuò)的情況了。
4、有可能是數(shù)據(jù)庫(kù)問(wèn)題我的在nginx日志php日志都沒(méi)有發(fā)現(xiàn)什么問(wèn)題, 最后發(fā)現(xiàn)數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)不了,修正后問(wèn)題解決.

感謝各位的閱讀,以上就是“nginx提示500 Internal Server Error錯(cuò)誤怎么解決”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)nginx提示500 Internal Server Error錯(cuò)誤怎么解決這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI