详解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,就可以正常访问了。

相关推荐