1. 程式人生 > >[Nginx] nginx提示:500 Internal Server Error錯誤的解決方法

[Nginx] nginx提示:500 Internal Server Error錯誤的解決方法

現在越來越多的站點開始用 Nginx ,("engine x") 是一個高效能的 HTTP 和反向代理伺服器,也是一個 IMAP/POP3/SMTP 代理伺服器。 Nginx 是由 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點開發的,它已經在該站點執行超過兩年半了。Igor 將原始碼以類BSD許可證的形式釋出。 

在高併發連線的情況下,Nginx是Apache伺服器不錯的替代品。Nginx同時也可以作為7層負載均衡伺服器來使用。根據測試結果,Nginx 0.6.31 + PHP 5.2.6 (FastCGI) 可以承受3萬以上的併發連線數,相當於同等環境下Apache的10倍。 

但很多人用 Nginx 的時候都會出現 500 錯誤,根據我使用的情況來看,很大一部分原因是 因為檔案開啟控制代碼太小有關。

在linux 下 使用這個命令增加程序開啟的檔案控制代碼。
 
ulimit -SHn 51200 
預設只用1000 當連結數小的時候看不出來,使用這種處理方法可以有效防止500錯誤出現。 
今天訪問網站的時候,偶爾會遇上500 Internal Server Error的錯誤提示頁面. 
查了相關資料認為是訪問過大,系統核心程序受限才出現的. 

答案如下: 
$ ulimit -n 
11095 

程式限制只能開啟11095個檔案,ulimit命令是設定當前使用者一個程序可擁有的檔案描述符的數量. 
看來是模擬的併發數太多了,需要調整一下nginx.conf的併發設定數,(我的配置主機的記憶體2G,CPU為2.8G,) 

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


調整為 

events { 
worker_connections 10240; 


還是會出現上面問題,使用 
[
[email protected]
nginx]# cat /proc/sys/fs/file-max 
8192 
檔案系統最大可開啟檔案數 
[[email protected] nginx]# ulimit -n 
1024 
程式限制只能開啟1024個檔案 
使用[[email protected] nginx]# ulimit -n 8192調整一下 
或者永久調整開啟檔案數 可在啟動檔案/etc/rc.d/rc.local末尾新增(在/etc/sysctl.conf末尾新增fs.file-max=8192) 
ulimit -n 8192 
調整CentOS5檔案開啟數 
使用ulimit -a一下,發現OPEN FILES不能預設超過1024,昨天的在進行壓力測試時,出現500錯誤,具體請檢視 
nginx出現 500 Internal Server Error 
早上起來看一下,發現原來是通過如下方式調整 
方法1 (永久調整) 

vi /etc/security/limits.conf 

在檔案末加上: 

* soft nofile 8192 
* hard nofile 20480 

同時vi /etc/sysctl.conf末尾新增 
fs.file-max=8192 
重新啟動,在使用ulimit -n檢視的數已經是8192 

方法2 (臨時用) 

直接在終端輸入 ulimit -n 8192 按回車就ok了

500 Internal Server Error錯誤補充:

1、硬碟空間滿了(df -lh檢視磁碟佔用情況,nginx所在目錄已佔用100%,我的是這個問題,想辦法釋放空間或掛載更大磁碟)

使用 df -k 檢視硬碟空間是否滿了。清理硬碟空間就可以解決500錯誤。nginx如果開啟了access log,在不需要的情況下,最好關閉access log。access log會佔用大量硬碟空間。 

2、nginx配置檔案錯誤 

這裡不是指語法錯誤,nginx如果配置檔案有語法錯誤,啟動的時候就會提示。當配置rewrite的時候,有些規則處理不當會出現500錯誤,請仔細檢查自己的rewrite規則。如果配置檔案裡有些變數設定不當,也會出現500錯誤,比如引用了一個沒有值的變數。 

3、如果上面的問題都不存在可能是模擬的併發數太多了,需要調整一下nginx.conf的併發設定數 

解決方法是: 

1 開啟/etc/security/limits.conf檔案,加上兩句 

* soft nofile 65535 
* hard nofile 65535 

2 開啟/etc/nginx/nginx.conf 

在worker_processes的下面增加一行 
worker_rlimit_nofile 65535; 

3 重新啟動nginx,重新載入設定 

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的錯誤日誌,也沒有發現500報錯的情況了。 

4、有可能是資料庫問題我的在nginx日誌php日誌都沒有發現什麼問題, 最後發現數據庫訪問不了,修正後問題解決.

相關推薦

nginx提示500 Internal Server Error錯誤

在linux 下 使用這個命令增加程序開啟的檔案控制代碼。 ulimit -SHn 51200 預設只用1000 當連結數小的時候看不出來,使用這種處理方法可以有效防止500錯誤出現。 今天訪問網站的時候,偶爾會遇上500 Internal Server Error的錯誤提示

[Nginx] nginx提示500 Internal Server Error錯誤解決方法

現在越來越多的站點開始用 Nginx ,("engine x") 是一個高效能的 HTTP 和反向代理伺服器,也是一個 IMAP/POP3/SMTP 代理伺服器。 Nginx 是由 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點開發的,它已經在該站點執行超過兩年半了。Igor 將

nginx提示500 Internal Server Error錯誤解決方法

現在越來越多的站點開始用 Nginx ,("engine x") 是一個高效能的 HTTP 和反向代理伺服器,也是一個 IMAP/POP3/SMTP 代理伺服器。 Nginx 是由 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點開發的,它已經在該站

apache Mercurial HTTP Error 500: Internal Server Error問題解決方法

I've been trying to setup mercurial for the last couple of > days and made good progress. I'm able to clone and browse > the reposit

EBS 登入時出現500 Internal Server Error解決方法

記錄一下: 今天DBA所安裝的EBS R12.1.1應用程式無法通過系統最後的檢測階段,安裝提示說明:JSP、Login頁無法通過檢測。 (系統環境比較特殊,資料庫是安裝在實體機上,應用是安裝在虛擬機器上!) 之後DBA又重新“Retry“ 檢測之後既然通過了!再之後登入系

Internal Server Error 錯誤解決方法

剛在本機部署了一個WebService測試,瀏覽的時候出現了“HTTP 錯誤 500.19 - Internal Server Error ”錯誤,如下圖: 經過檢查發現是由於先安裝vs2008後安裝iis的緣故,只需重新註冊下AspNet就可以了,具體步驟如下 1 開啟執行,輸入cmd

Nginxnginx 500 Internal Server Error錯誤 )error_log is forbidden (13: Permission denied)

ps -ef|grpe nignx  發現啟動nginx 對應的使用者為nginx 修改nginx.conf vim /etc/nginx/nginx.conf 將user nginx; 改為user root;重新啟動nginx即可 (有時候/nginx -s reload 或者 ser

關於IIS伺服器錯誤500 Internal Server Error,/”應用程式中的伺服器錯誤,執行時錯誤

注:大神請忽略! 首先描述一下環境,ASP.NET MVC專案,在本機IIS伺服器部署,本機以及區域網其他機器均可以正常訪問網站,部署到Windows Server 2008伺服器,是不是會遇到錯誤:500 Internal Server Error,如下影象這樣子的!

HTTP 錯誤 500.19 Internal Server Error解決方法

輸入a dpi 編輯 模塊 cfi modules 位置 override 程序 第一種可能,能解決一部分問題 http://wenku.baidu.com/view/c5cb4a08bb68a98271fefa3f.html 第二種可能,解決另外一部分問題 經過檢查發

500 Internal Server Error錯誤問題解決辦法

       這兩天遇見兩次頁面報 500 Internal Server Error錯誤問題,網上找了許多答案都未能解決問題,如圖: 最後找到原因: 本地服務端正常,由於該資料呼叫的是第三方介面,次數第三方介面服務已經停止執行,所有導致此問題。重啟第三方服務介面服務,

500 (Internal Server Error)錯誤解析

今天遇到一個很奇怪的問題。問題起因是,原先我寫了一個小型的網站,突然有一天那臺機器出了問題被重灌了,結果我的小應用就沒了。慶幸的是,我做了備份(看來做備份真是太重要的一件事了)。我將備份的檔案放到了/var/www目錄下,但是介面卻不正常。只有HTML的部分顯示正常,但是涉

Internal Server Error解決方法

問題描述: 應用程式“JAJY”中的伺服器錯誤 Internet Information Services 7.5 錯誤摘要 HTTP 錯誤 500.24 - Internal Server Error 檢測到在整合的託管管道模式下不適用的 ASP.NET 設定。 詳細錯

Nginx一例 500 internal server ERROR問題的解決

自己樹莓派上面搭了個nginx伺服器的web網站的主頁用了樹狀列表,但是每次都在到樹莓派nginx上訪問時bottom相關的三個png小圖示顯示不了,其他png小圖示都是ok的請求都對;而在本機測試則顯示一點問題也沒有。 修改js和修改伺服器755檔案訪問許可權,都沒用;後

nginx500 Internal Server Error

這個問題是其他同事反映過來的,應該說比較罕見,需要同時滿足三種條件才能發生。為了保持神祕,原因暫時不提,不過背景得交待一下。該案例的大概架構就是部署兩個nginx伺服器,nginx1作為普通的web server,nginx2作為反向代理部署在nginx1的後端。出於測試

Tomcat 提示 HTTP Status 500Internal Server Error

第一次使用tomcat,出現了錯誤,程式在IDEA上可以正常執行,但手動放入tomcat目錄後就出現錯誤 錯誤資訊: HTTP Status 500 – Internal Server Error Type Exception Report Message Erro

伺服器錯誤http 錯誤500.19 Internal Server Error解決辦法

釋出牛腩新聞系統的時候遇到一個很頭疼的錯誤: 網上查了一些相關資料,大部分都說原因是asp.net的framework版本問題。因此照著說的也重新註冊了一下。 網上一般的資料都是說註冊2.0版本,但是這個需要根據自己的程式來,我用的是V4.0的,所以註冊的時候就應註冊成這

nginxInternal Server Error 錯誤

作業系統為mac,今天遇到特別坑的問題nginx 服務報錯問題 php-fpm 檢查沒問題 nginx 檢查沒問題 mysql 檢查沒問題 最後發現 127.0.0.1 能訪問,

今天也碰到了HTTP 500 Internal server error,終於解決 (關鍵字HTTP 500 Internal server error ※ [code=CANT_CONNECT_LOOPBACK] )

關鍵字:HTTP 500 - Internal server error                [code=CANT_CONNECT_LOOPBACK] Cannot connect due to potential loopback problems 今天用筆記本教

HTTP Status 500Internal Server Error

javax servlet line user eat eve ble login getc 明明硬盤中存在users.xml,但是提示:系統找不到指定的路徑。 解決辦法: 設置String的編碼格式 1 realpath = URLDecoder.dec

ajaxfileupload 報錯500 internal server error

spring MVC結構專案 用ajaxfileupload.js 上傳excel 檔案報錯,程式碼本地跑沒問題, 但是測試環境就是不成功,頁面報500 internal server error 。 後端程式沒有進入controller, tomcat 沒有報錯日誌。 前後按照網