发表评论
nginx的nginx.conf配置如下
user www; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; keepalive_timeout 65; #gzip on; server { listen 80 ; server_name 127.0.0.1; root /data/test; location / { index index.html index.htm; } } }
一个简单的配置,使用www账号运行nginx,项目放在/data/test中。
此时本机访问http://127.0.0.1 提示:403 forbidden
这一般是由三种情况导致的:
一、权限问题
配置中的www账号无权访问/data/test/index.html文件,这个时候查看nginx的error.log日志(默认在nginx根目录/logs/error.log),可以看到以下报错信息:
"/data/test/index.html" is forbidden (13: Permission denied), client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", host: "127.0.0.1"
初级解决办法为:
chmod -R 755 /data/test
如果还是不行,那应该是www账号无权限访问/data或者/data/test目录所致的,建议使用www账号登录linux系统,然后去看下是否有权限访问/data/test目录包括/data目录,解决方案为:
把data目录的所有用户和所有组修改为www,这样就有权限访问了
chown -R www:www /data
或者把test项目上传到www的工作目录上如/home/www/中
注意进行chmod或chown后,需要重启nginx,方可生效!
二、缺少索引文件
即在/data/test/目录下缺少nginx配置的index.html或index.htm
三、关闭SELINUX
网上还有种说法是关闭SELINUX,如果上面两个情况都不存在的话,可以看看系统SELINUX是否是开启的,如果开启了关闭操作为:
vim /etc/selinux/config #将SELINUX=enforcing改为SELINUX=disabled #保存退出 reboot#重启系统