Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nginx 为什么写两次指令access_log实际上会关闭日志?_Nginx_Nginx Config - Fatal编程技术网

Nginx 为什么写两次指令access_log实际上会关闭日志?

Nginx 为什么写两次指令access_log实际上会关闭日志?,nginx,nginx-config,Nginx,Nginx Config,下面的nginx.conf可以显示people server { listen 80; access_log /var/log/nginx/access.log combined; access_log on; ... location / { access_log on; # write it the second time actually turn off the log! ... } ... } 所

下面的nginx.conf可以显示people

server {
    listen 80;  
    access_log /var/log/nginx/access.log combined;
    access_log on;
    ...
    location / {
      access_log on;  # write it the second time actually turn off the log!
      ...
    }
    ...
 }
所以写访问\登录;实际上,两次关闭日志。为什么呢?我不禁想知道这是一只虫子吗

谢谢

--更新--


它变成了只有access\u log off指令,没有access\u log on不知道我为什么会这样:$所以当我在日志中写入access\u log时,日志被写入一个名为on的文件,而不是我预期的/var/log/nginx/access.log。所以我想为什么没有日志?!:$

这是预期的行为。发件人:

访问日志不会被继承

访问日志设置不堆叠或继承;一个上下文中的access_log指令将替换父上下文中声明的访问日志


因此,如果您不登录access\u;在位置/{中,您将获得两个日志文件,因为服务器上下文中的日志文件将适用。相反,如果您在位置/{那么外部作用域的访问日志配置将不适用。

但是这个指令有一个特殊的值on。你不是只是将日志写入文件名on吗?不,我检查日志文件并验证我是否没有写入访问日志;在位置/I将获取日志。你是说确实有一个调用的文件将获取日志吗?是的,当然。正如我所说的在初始注释中,on不是一个特殊值。因此您已在上指定了文件名。您好,我刚刚验证了您所说的,它确实是上的一个文件:$