nginx 日志的位置

yum*_*oji 8 nginx nginx-location nginx-config

需要一些帮助来设置 nginx 日志,以便它们不会重复。

我的配置如下。我想要实现的是,http://example.com/app的所有日志都转到文件 app.access.log,而网站其余部分的日志则转到文件 main.access.log

但是,以下配置将应用程序日志记录到 app.access.log 和 main.access.log。

server {

       access_log /var/log/nginx/main.access.log;


       location /app {
           access_log /var/log/nginx/app.access.log;
       }
}
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题吗?

And*_*lin 2

您可以使用否定正则表达式来拦截所有未定向到应用程序的请求,并在那里定义 access_log 指令。然后定义应用程序的其他位置

location ~ ^((?!app).)*$ {
        access_log /var/log/nginx/not-an-app.access.log;
   }

location /app { 
       access_log /var/log/nginx/app.access.log;
   }
Run Code Online (Sandbox Code Playgroud)

我认为这有点牵强,在投入生产之前我会对其进行测试。