为什么Nginx配置自定义错误日志路径后仍读取默认路径报错?
问题原因
- 关于
/var/log/nginx/error.log权限报错:Nginx启动时会先使用编译阶段预设的默认错误日志路径(默认就是/var/log/nginx/error.log)输出配置加载过程中的日志,直到完整解析完你指定的nginx.conf后,才会切换到你自定义的error_log路径。这个alert是配置加载阶段的日志,还没读到你写的自定义配置就触发了。 - 关于
/var/tmp/nginx/client-body权限报错:说明你写的client_body_temp_path配置没有生效,Nginx仍在使用默认路径,常见原因如下:- 你执行
nginx -c nginx.conf时用的是相对路径,当前工作目录下不存在对应配置文件,Nginx实际加载的是系统默认的/etc/nginx/nginx.conf - 你的
client_body_temp_path配置位置错误,或者被后续引入的其他配置(比如include指令引入的子配置文件)覆盖 - 运行Nginx的用户没有读取你指定的nginx.conf的权限,导致配置未被正确加载
- 你执行
解决方法
- 先确认配置文件路径正确,执行时用绝对路径验证:
nginx -c /path/to/your/nginx.conf -t先测试配置是否合法 - 如果你不想触发默认路径的告警,可在启动Nginx前临时指定错误日志路径:
nginx -c /path/to/your/nginx.conf -e /tmp/nginx/error.log - 检查你的nginx.conf中
client_body_temp_path是否写在全局块或http块中,且没有被后续的相同配置覆盖 - 提前给运行Nginx的用户开放对应目录的读写权限,或者以root身份启动Nginx,启动后它会自动切换到配置的user用户运行
内容的提问来源于stack exchange,提问作者beardeadclown
相关产品推荐
相关产品推荐

