我是nginx的新手,我有一个给定的nginx配置。 有一个映射,如:
map $http_host $my_customer {
default "default";
"~*cust1" "cust1";
"~*cust2" "cust2";
}
还有access_log行:
access_log /my/log/path/access.log
现在我想为每个客户提供单独的日志目录和日志文件,因此我将access_log行更改为:
access_log /my/log/path/$my_customer/access.log
如果$my_customer
- 目录已经存在,这样可以正常工作。但如果它不存在,则nginx不会记录。我知道如何检查目录是否存在:
if (!-d /my/log/path/$my_customer) {}
但是如何在nginx配置文件中创建目录呢?
答案 0 :(得分:2)
为了启动nginx进程,必须事先创建所有目录
dir的所有者应该由nginx配置文件中定义的工作进程使用(默认为/etc/nginx/nginx.conf
)。
用户应具有此目录的写权限。
正如@Alexey Ten注意到的那样,使用默认日志位置并不错:
/var/log/nginx/$my_customer.access.log
否则,你必须做那样的事情:
mkdir -p -m 755 /my/log/path/$my_customer