Nginx中location级日志为何与全局日志的权限及属主不一致?
Nginx Location级日志与全局日志权限/属主差异的原因
日志创建的执行者与时机不同:全局日志是Nginx以root用户启动时创建的(因为Nginx需要root权限绑定80、443这类特权端口);而location专属日志是当该location路径首次收到请求时,由Nginx的worker进程创建的,worker进程通常运行在非root权限的系统用户下(比如
www-data、nginx用户),因此日志文件的属主/用户组会和worker进程的运行用户一致,和root创建的全局日志自然存在差异。umask配置的影响:root用户的umask设置和Nginx worker进程的umask可能不同。全局日志创建时遵循root用户的umask规则,而location日志创建时遵循worker进程的umask规则,这会导致两者的文件访问权限位(比如
644和664)出现差异。手动干预日志文件的情况:如果提前手动创建了location对应的日志文件,并且指定了特定的属主、用户组或权限,那么该文件的属性会完全由手动设置决定,和Nginx自动创建的全局日志属性不一致。
内容的提问来源于stack exchange,提问作者verm-luh
相关产品推荐
相关产品推荐

