Nginx 使用$hostname做为access_log名中的坑

在多节点部署的情况下,需要对nginx日志文件按节点名[hostname]做区分,但实际使用中发现日志文件夹中并没有输出这种文件,本以为access_log中不支持这个变量,其实看到error_log中的日志发现了问题所在。

        access_log  /logs/nginx/prd-$hostname-access.log main;

2019/01/29 11:19:04 [crit] 129#129: *17 open() "/logs/nginx/prd-c6dd12455a61-access.log" failed (13: Permission denied) while logging request, client: 172.17.0.1, server: , request: "GET /favicon.ico HTTP/1.1", host: "127.0.0.1:81", referrer: "http://127.0.0.1:81/robots.txt"

这种带变量的nginx日志应该是有nginx子进程创建的,所以要对文件夹有写入权限。不然创建不成功,也就没有这个文件,但是加了写入权限之后就能正常生成并写入。证明这个$hostname变量是支持的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Captcha Code