Nginx 500錯誤總結

2022-07-21 16:33:20 字數 3364 閱讀 9068

nginx 500錯誤總結

500(伺服器內部錯誤)

伺服器遇到錯誤,無法完成請求。

501(尚未實施)

伺服器不具備完成請求的功能。例如,當伺服器無法識別請求方法時,伺服器可能會返回此**。

502(錯誤閘道器)

伺服器作為閘道器或**,從上游伺服器收到了無效的響應。

503(服務不可用)

目前無法使用伺服器(由於超載或進行停機維護)。通常,這只是一種暫時的狀態。

504(閘道器超時)

伺服器作為閘道器或**,未及時從上游伺服器接收請求。

505(http 版本不受支援)

伺服器不支援請求中所使用的 http 協議版本。

nginx 500錯誤(internal server error  內部伺服器錯誤):500錯誤指的是伺服器內部錯誤,也就是伺服器遇到意外情況,而無法履行請求。

1. web指令碼錯誤,如php語法錯誤,lua語法錯誤等。

2. 訪問量大的時候,由於系統資源限制,而不能開啟過多的檔案

(1)檢視nginx error log ,檢視php error log

(2)如果是too many open files,修改nginx的worker_rlimit_nofile引數,使用ulimit檢視系統開啟檔案限制,修改/etc/security/limits.conf

(3)如果是指令碼的問題,則需要修復指令碼錯誤,並優化**

(4)各種優化都做好,還是出現too many open files,那就要考慮做負載均衡,把流量分散到不同伺服器上去了。

1、硬碟空間滿了 

使用 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 ''` 

/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日誌都沒有發現什麼問題, 最後發現資料庫訪問不了,修正後問題解決。

500(伺服器內部錯誤)

伺服器遇到錯誤,無法完成請求。

501(尚未實施)

伺服器不具備完成請求的功能。例如,當伺服器無法識別請求方法時,伺服器可能會返回此**。

502(錯誤閘道器)

伺服器作為閘道器或**,從上游伺服器收到了無效的響應。

503(服務不可用)

目前無法使用伺服器(由於超載或進行停機維護)。通常,這只是一種暫時的狀態。

504(閘道器超時)

伺服器作為閘道器或**,未及時從上游伺服器接收請求。

505(http 版本不受支援)

伺服器不支援請求中所使用的 http 協議版本。

nginx 500錯誤(internal server error  內部伺服器錯誤):500錯誤指的是伺服器內部錯誤,也就是伺服器遇到意外情況,而無法履行請求。

1. web指令碼錯誤,如php語法錯誤,lua語法錯誤等。

2. 訪問量大的時候,由於系統資源限制,而不能開啟過多的檔案

(1)檢視nginx error log ,檢視php error log

(2)如果是too many open files,修改nginx的worker_rlimit_nofile引數,使用ulimit檢視系統開啟檔案限制,修改/etc/security/limits.conf

(3)如果是指令碼的問題,則需要修復指令碼錯誤,並優化**

(4)各種優化都做好,還是出現too many open files,那就要考慮做負載均衡,把流量分散到不同伺服器上去了。

1、硬碟空間滿了 

使用 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 ''` 

/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錯誤總結

500 伺服器內部錯誤 伺服器遇到錯誤,無法完成請求 501 尚未實施 伺服器不具備完成請求的功能。例如,當伺服器無法識別請求方法時,伺服器可能會返回此 502 錯誤閘道器 伺服器作為閘道器或 從上游伺服器收到了無效的響應 503 服務不可用 目前無法使用伺服器 由於超載或進行停機維護 通常,這只是...

Nginx 500錯誤總結

nginx 500錯誤總結 500 伺服器內部錯誤 伺服器遇到錯誤,無法完成請求。501 尚未實施 伺服器不具備完成請求的功能。例如,當伺服器無法識別請求方法時,伺服器可能會返回此 502 錯誤閘道器 伺服器作為閘道器或 從上游伺服器收到了無效的響應。503 服務不可用 目前無法使用伺服器 由於超載...

nginx 伺服器大檔案上傳時500錯誤

採用nginx作反向 出現了乙個詭異的問題,小檔案可以提交,大檔案會報500內部錯誤。這個是什麼原因導致的呢?查wiki可知,上傳檔案大小相關的有三個配置 client body buffer size 配置請求體快取區大小,不配的話,client body temp path 設定臨時檔案存放路徑...