目錄
- 1.背景
- 2.Nginx 常見的幾種報錯
- 3. 解決500錯誤
- 1.資源不足
- 2.nginx配置文件錯誤
- 總結
1.背景
最近在操作nginx 的時候出現了 Nginx 500 內部錯誤,在此記錄一下原因,項目采用的是前后端分離方式,后端SpringBoot ,前端是Vue 部署到Nginx 下。
2.Nginx 常見的幾種報錯
500–服務器內部錯誤:服務器遇到錯誤,無法完成請求
501–尚未實施:服務器不具備完成請求的功能,如:當服務器無法識別請求方法時,服務器可能會返回此代碼
502–網關錯誤:服務器作為網關或代理,從上游服務器收到了無效的響應
503–服務不可用:服務器目前無法使用,可能由于停機或者超載,通常為暫時的狀態
504–網關超時:服務器作為網關或者代理,無法及時從上游服務器接收請求
505–http版本不受支持:服務器不支持請求中所使用的http協議版本
3. 解決500錯誤
1.資源不足
查看服務器的硬盤空間是否滿了
linux 系統:df -h
window 系統:
cmd(Dos)命令查看硬盤和內存/CPU信息等 1.查看磁盤信息:freedisk 可以查看每一個盤的剩余空間 wmic diskdrive 可以看出來牌子和大小. Wmic logicaldisk 可以看到有幾個盤,每一個盤的文件系統和剩余空間 wmic volume 每個盤的剩余空間量,其實上一個命令也可以查看的 fsutil volume diskfree c: 這個命令查看每一個卷的容量信息是很方便 2.CPU信息 wmic cpu 上面顯示的有位寬,最大始終頻率, 生產廠商,二級緩存等信息 3.內存信息 wmic memorychip 可以顯示出來三條內存,兩條256,一條1G的,速度400MHz 4.BIOS信息 wmic bios 5.電腦型號\SN\UUID等 wmic csproduct*
2.nginx配置文件錯誤
這里不是指語法錯誤,nginx如果配置文件有語法錯誤,啟動的時候就會提示。當配置rewrite的時候,有些規則處理不當會出現500錯誤,請仔細檢查自己的rewrite規則。如果配置文件里有些變量設置不當,也會出現500錯誤,比如引用了一個沒有值的變量,
我這里報錯 是因為:
這個路徑錯誤導致的。
如果是并發數太多too many open files 修改nginx.config 的并發數
解決方法是:
打開/etc/security/limits.conf文件,加上兩句
復制代碼代碼如下:
- soft nofile 65535
- hard nofile 65535
打開/etc/nginx/nginx.conf
在worker_processes的下面增加一行
復制代碼代碼如下:
- worker_rlimit_nofile 65535;
重新啟動nginx,重新載入設置
有可能是數據庫問題