systemctl启动nginx没有加载nginx.conf配置文件?

fedora23 ,我在我的用户目录下面放了我的工程文件夹,其中有一些静态文件(css,图片之类的),就用nginx做了个服务器来提供。
nginx是用的fedora wiki上面nginx教程里提供的方法直接从fedora源用dnf安装的,装好后nginx.conf里面配置的用户是“nginx”。不管我怎么改变我用户目录的权限,总之就是403 forbidden,查看log显示权限不够。

看了网上的教程,说开发中直接使用root用户即可,想想很有道理,就把nginx.conf里面的用户改成了root,重启nginx 服务后查看ps aux | grep nginx, 发现确实是root用户了,然而仍然是403

后来我直接使用nginx -c /etc/nginx/nginx.conf来启动,就一切正常了。使用ps aux查看用户没有区别,只有master process这一项由/usr/sbin/nginx变成了nginx -c /etc/nginx/nginx.conf

现在的猜测是,systemctl启动(包括service nginx start这种方式)启动的时候并没有正确加载nginx.conf中关于用户的配置项,但是server的配置是正常的……

不知道有没有人遇到和我一样的问题




森林海
浏览 3162回答 2
2回答

缥缈止盈

原来就是SElinux的权限管理在捣乱,他不让nginx访问nginx.conf,直接google nginx selinux可以在nginx官网上找到方法,就是用semanage加上httpd_t什么的就可以了,具体google即可
打开App,查看更多内容
随时随地看视频慕课网APP