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