1. 程式人生 > >Nginx啟動失敗的幾種錯誤處理

Nginx啟動失敗的幾種錯誤處理

使用Nginx做Web伺服器過程中,碰到過以下幾個問題:

1、nginx啟動失敗

systemctl start nginx.service

啟動nginx失敗,報錯資訊如下:

Starting nginx: nginx: [emerg] bind() to 0.0.0.0:** failed (13: Permission denied)

這通常是因為開啟了SELinux的原因,使用命令 getenforce 可以檢視SELinux狀態,如果輸出為 enforcing 表示已開啟。用以下方法關閉:

  • 臨時關閉selinux

setenforce 0 ##設定SELinux 成為permissive模式
setenforce 1 ##設定SELinux 成為enforcing模式

  • 永久關閉selinux

修改 /etc/selinux/config 檔案
將 SELINUX=enforcing 改為 SELINUX=disabled
重啟機器即可

2、403 Forbidden 錯誤

nginx配置好後,訪問頁面出現 403 Forbidden 錯誤,可以檢視錯誤日誌來判斷問題原因。在 /etc/nginx/nginx.conf 檔案中指定了錯誤日誌檔名,預設是 /var/log/nginx/error.log,使用命令

tail /var/log/nginx/error.log

檢視,如果發現有類似 index.html failed (13: Permission denied) 的資訊,通常是nginx使用者許可權和網站目錄檔案的使用者許可權不一致的原因(因為網站目錄檔案的所屬使用者通常是xxx或root,而nginx的預設工作程序使用者是nginx,這可以在 /etc/nginx/nginx.conf 中修改),我的解決方法是不修改nginx.conf,而是以root使用者登入,同時把網站目錄檔案放在 /usr/share/nginx/xxx 下(保證所有檔案的所屬使用者都是root),之後
重啟nginx,就可以正常訪問了。