五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > nginx提示:500 Internal Server Error錯(cuò)誤的解決方法

nginx提示:500 Internal Server Error錯(cuò)誤的解決方法

文章來源:365jz.com     點(diǎn)擊數(shù):683    更新時(shí)間:2017-08-17 09:42   參與評(píng)論

 nginx提示:500 Internal Server Error錯(cuò)誤解決辦法

前言:

今天發(fā)現(xiàn)網(wǎng)站無法上傳資源和發(fā)布文章,通過瀏覽器查看服務(wù)器的返回信息

500 Internal Server Error

剛開始我以為是應(yīng)用服務(wù)器或者是程序異常,檢查了下各自的日志,連請(qǐng)求記錄都無,程序代碼里也沒拋出過該類型的異常,所以可以從服務(wù)器或者Nginx中找原因了。

1、是否磁盤空間不足?

使用 df -k 查看硬盤空間是否滿了。清理硬盤空間就可以解決500錯(cuò)誤。nginx如果開啟了access log,在不需要的情況下,最好關(guān)閉access log。access log會(huì)占用大量硬盤空間。

2、nginx配置文件錯(cuò)誤?

這里不是指語法錯(cuò)誤,nginx如果配置文件有語法錯(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è)沒有值的變量。

3、如果上面的問題都不存在可能是模擬的并發(fā)數(shù)太多了,需要調(diào)整一下nginx.conf的并發(fā)設(shè)置數(shù)

解決方法是:

1.打開/etc/security/limits.conf文件,加上兩句

* soft nofile 65535 
* hard nofile 65535

2.打開/etc/nginx/nginx.conf ,在worker_processes的下面增加一行

worker_rlimit_nofile 65535;

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

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ò)誤日志,有沒有發(fā)現(xiàn)500報(bào)錯(cuò)的情況了。

總結(jié)

發(fā)現(xiàn)問題的時(shí)候,我沒去google或者百度,而是直接登錄遠(yuǎn)程服務(wù)器排查問題,花了將近一個(gè)小時(shí)才查出問題解決問題,浪費(fèi)不少時(shí)間,這讓我想起一句很經(jīng)典的話:程序員之所以犯錯(cuò)誤,不是因?yàn)樗麄儾欢?,而是因?yàn)樗麄冏砸詾槭裁炊级?/p>


現(xiàn)在越來越多的站點(diǎn)開始用 Nginx ,("engine x") 是一個(gè)高性能的 HTTP 和反向代理服務(wù)器,也是一個(gè) IMAP/POP3/SMTP 代理服務(wù)器。 Nginx 是由 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點(diǎn)開發(fā)的,它已經(jīng)在該站點(diǎn)運(yùn)行超過兩年半了。Igor 將源代碼以類BSD許可證的形式發(fā)布。

在高并發(fā)連接的情況下,Nginx是Apache服務(wù)器不錯(cuò)的替代品。Nginx同時(shí)也可以作為7層負(fù)載均衡服務(wù)器來使用。根據(jù)測(cè)試結(jié)果,Nginx 0.6.31 + PHP 5.2.6 (FastCGI) 可以承受3萬以上的并發(fā)連接數(shù),相當(dāng)于同等環(huán)境下Apache的10倍。

但很多人用 Nginx 的時(shí)候都會(huì)出現(xiàn) 500 錯(cuò)誤,根據(jù)我使用的情況來看,很大一部分原因是 因?yàn)槲募蜷_句柄太小有關(guān)。

在linux 下 使用這個(gè)命令增加進(jìn)程打開的文件句柄。
ulimit -SHn 51200
默認(rèn)只用1000 當(dāng)鏈接數(shù)小的時(shí)候看不出來,使用這種處理方法可以有效防止500錯(cuò)誤出現(xiàn)。
今天訪問網(wǎng)站的時(shí)候,偶爾會(huì)遇上500 Internal Server Error的錯(cuò)誤提示頁面.
查了相關(guān)資料認(rèn)為是訪問過大,系統(tǒng)內(nèi)核進(jìn)程受限才出現(xiàn)的.

答案如下:

$ ulimit -n
11095

程序限制只能打開11095個(gè)文件,ulimit命令是設(shè)置當(dāng)前用戶一個(gè)進(jìn)程可擁有的文件描述符的數(shù)量.
看來是模擬的并發(fā)數(shù)太多了,需要調(diào)整一下nginx.conf的并發(fā)設(shè)置數(shù),(我的配置主機(jī)的內(nèi)存2G,CPU為2.8G,)

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



調(diào)整為

 events { 
worker_connections 10240; 
}



還是會(huì)出現(xiàn)上面問題,使用
[root@qimutian nginx]# cat /proc/sys/fs/file-max
8192
文件系統(tǒng)最大可打開文件數(shù)
[root@qimutian nginx]# ulimit -n
1024
程序限制只能打開1024個(gè)文件
使用[root@qimutian nginx]# ulimit -n 8192調(diào)整一下
或者永久調(diào)整打開文件數(shù) 可在啟動(dòng)文件/etc/rc.d/rc.local末尾添加(在/etc/sysctl.conf末尾添加fs.file-max=8192)
ulimit -n 8192
調(diào)整CentOS5文件打開數(shù)
使用ulimit -a一下,發(fā)現(xiàn)OPEN FILES不能默認(rèn)超過1024,昨天的在進(jìn)行壓力測(cè)試時(shí),出現(xiàn)500錯(cuò)誤,具體請(qǐng)查看
nginx出現(xiàn) 500 Internal Server Error
早上起來看一下,發(fā)現(xiàn)原來是通過如下方式調(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 按回車就ok了

500 Internal Server Error錯(cuò)誤補(bǔ)充:

1、硬盤空間滿了

使用 df -k 查看硬盤空間是否滿了。清理硬盤空間就可以解決500錯(cuò)誤。nginx如果開啟了access log,在不需要的情況下,最好關(guān)閉access log。access log會(huì)占用大量硬盤空間。

2、nginx配置文件錯(cuò)誤

這里不是指語法錯(cuò)誤,nginx如果配置文件有語法錯(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è)沒有值的變量。

3、如果上面的問題都不存在可能是模擬的并發(fā)數(shù)太多了,需要調(diào)整一下nginx.conf的并發(fā)設(shè)置數(shù)

解決方法是:

1 打開/etc/security/limits.conf文件,加上兩句

 * soft nofile 65535 
* hard nofile 65535



2 打開/etc/nginx/nginx.conf
在worker_processes的下面增加一行

worker_rlimit_nofile 65535;  

3 重新啟動(dòng)nginx,重新載入設(shè)置
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ò)誤日志,也沒有發(fā)現(xiàn)500報(bào)錯(cuò)的情況了。


4、有可能是數(shù)據(jù)庫(kù)問題我的在nginx日志php日志都沒有發(fā)現(xiàn)什么問題, 最后發(fā)現(xiàn)數(shù)據(jù)庫(kù)訪問不了,修正后問題解決.

 

如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會(huì)為你解答?。?點(diǎn)擊進(jìn)入論壇

發(fā)表評(píng)論 (683人查看0條評(píng)論)
請(qǐng)自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
昵稱:
最新評(píng)論
------分隔線----------------------------
大家感興趣的內(nèi)容
最近更新的內(nèi)容

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時(shí)間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)