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

发布于 2022-09-02 01:10:50 字数 595 浏览 21 评论 0

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的配置是正常的……

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

篱下浅笙歌 2022-09-09 01:10:50

原来就是SElinux的权限管理在捣乱,他不让nginx访问nginx.conf,直接google nginx selinux可以在nginx官网上找到方法,就是用semanage加上httpd_t什么的就可以了,具体google即可

一念一轮回 2022-09-09 01:10:50

我也遇到这样的问题,我是用yum install nginx安装的,安装后自动生成了nginx.service。但是用systemctl start nginx.service会卡住,用ctrl + C 结束后,查看进程已经启动了,能正常使用。用/usr/sbin/nginx -c /etc/nginx/nginx.conf 能启动就没有这种问题,怀疑是systemctl 启动文件出了问题,查看了一下,最有可能出问题的就是ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf

view /usr/lib/systemd/system/nginx.service

[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf 我把这一行屏蔽了
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID

[Install]
WantedBy=multi-user.target

单独执行/usr/sbin/nginx -t -c /etc/nginx/nginx.conf是没有任何问题的,但是放在这里就是有问题,虽然问题解决了,但是还是不明白为什么会导致这种问题。

如梦 2022-09-09 01:10:50

我也遇到了同样的问题,设置了selinux模式为宽容模式或者关闭模式,问题就解决了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文