我的nginx.conf
中有以下行(加上下文):
http {
proxy_cache_path cache/ keys_zone=auth_cache:10m;
...
由于nginx.conf
位于/etc/nginx
,cache/
对应/etc/nginx/cache
。
drwxr-XR-X。 5 root root 205 Jun 18 16:25 / etx / nginx
(我也用绝对路径/apps/nginx/cache/
drwx------. 2 nginx nginx 6 Jun 18 14:42 /apps/nginx
)
在任何一种情况下,当我尝试
时$ sudo systemctl start nginx
失败了。 journalctl -u nginx
告诉我以下内容:
... nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
... nginx: [emerg] mkdir() "/etc/nginx/cache" failed (13: Permission denied)
... nginx: configuration file /etc/nginx/nginx.conf test failed
(在备用方案中,确实会说"/apps/nginx/cache"
。)
然后我试着
$ sudo systemctl start nginx-debug
并且启动没有任何问题,错误或警告日志。它会在cache/
中指定的任何位置创建nginx.conf
目录,当我停止并启动nginx
服务时,这也会正常启动。
我需要了解导致这种情况的原因,因此我可以编写自动化和配置管理,以便开箱即用。 我的两个假设是:
nginx-debug
对nginx
有不同的标记/限制。nginx
时的飞行前检查尝试将目录创建为其他目录。非特权用户,但nginx-debug
会跳过这些检查,从而以root或nginx创建目录。知道如何有效地深入了解这一点吗? 谢谢!