Nginx 更改站点目录后变成找不到页面
- 0次
- 2021-07-08 14:14:50
- idczone
新手转了 Nginx 1.8 , centos 7.1 的系统。
Nginx 的默认站点目录是 /usr/share/nginx/html ,我建了一个目录 /usr/share/nginx/html/mysite/,把默认的几个 html 文件移到了 mysite 下。
配置 /etc/nginx/conf.d/mysite.conf ,打开站点页面,一切正常。
现在我把站点目录换到 /home/jaleo/www/mysite ,修改 /etc/nginx/conf.d/mysite.conf ,再打开网站,显示 404 了。
cat /var/log/nginx/error.log ,发现有权限 denied 的日志
但我看了 /home/jaleo/www/mysite 目录的权限,是 775 。
我又试了其他目录,发现只要站点目录指向 /home/jaleo 下,就打不开页面。
不知道还有什么地方没有配置好,请指点。
头像不错~
除了权限,你还要看看你的文件归属啊...
setenforce 0 试试看
目录是 775 那文件呢
不是 nginx.conf
不要把 web 目录指向 /home 目录, home 目录都是有权限限制的,默认情况下只有 owner 自己能访问。但是你的 nginx 目测是以 nginx 用户启动的,所以肯定不能访问啦。
建议的 web 目录一般放在 /data/www 或者 /var/www 下哦,这样默认也不会有权限问题。
同问,之前我也遇到过,改了 owner ( www-data )也不行,后来不想折腾了,就让他在默认文件夹呆着了。
不建议把 web 目录放在 home 下。
如果真要放的话,从 web 目录向根目录一层一层地检查 nginx 用户是否具有 r 权限和 x 权限。我估计是中间的某一层目录没有 x 权限所致
你 service nginx reload 了么?
另外, nginx 需要对所有上级目录有 rx ,检查中间的
多谢指点 我晚上去检查下权限
上面的几位说的有道理 站点最好不要放在 home 下
得看下 nginx 当前运行使用的用户对目录的权限,每级目录都看下
我遇到只有中间一个目录没有权限,其他目录都有权限,文件访问不了的
注意下用户组
nginx 的 user group 配置是否和 www 目录所属用户组一样。
除了检查 /home/jaleo/www/mysite 的权限
还要检查 /home/jaleo/www 、/home/jaleo 和 /home 哦
一层层检查权限,也不建议你放这么深,我习惯的路径:/data/{www, server, logs, ssl, backup}
你可以参考一下
用户问题
我也遇到过类似问题, nginx uwsgi django 部署在 centos 上,静态文件放在 /home/www/static/下, nginx 是以 nginx 用户运行的, nginx 用户添加到 www 的用户组中, static 的目录权限是 750 ,可是 nginx 就是访问不到静态文件。后来干脆把运行用户设为 www 。
就刚刚我把 nginx 的运行用户重新设为 nginx ,重启 nginx 服务后发现能正常访问 static 目录了。前后的区别是原来的 nginx 用户是没有设置登录密码的,现在我设置密码了,不知道只是不是主要原因?
原来是 /home/jaleo 这个目录权限不够
和密码没有关系,因为这个用户不需要登录。另外,不要允许 nginx 用户登录(这是默认的),否则你就等着有人扫 ssh 密码爆菊吧。在 /etc/passwd 里面把该用户的 shell 设置为 /sbin/nologin 禁止登录
看看用户权限呢, chown www:www 网站目录
谢谢提醒
明显是你把你的东西放到别人家了,人家肯定不让你访问。。。