1
如果请求来自我的本地网络(例如192.168.x.x),如何将访问日志重定向到替代文件? 我发现some hints我如何根据请求者IP禁用日志,但在我的情况下,我想将这些请求记录到另一个文件中,以便为了开发目的,我只能在特定文件中看到我自己的日志。本地请求的nginx替代日志文件
如果请求来自我的本地网络(例如192.168.x.x),如何将访问日志重定向到替代文件? 我发现some hints我如何根据请求者IP禁用日志,但在我的情况下,我想将这些请求记录到另一个文件中,以便为了开发目的,我只能在特定文件中看到我自己的日志。本地请求的nginx替代日志文件
答案出现在您引用的页面中,您只需要将1
s和0
s取消即可。
这应该工作:
map $remote_addr $private_ip {
~^192\.168\. 1;
default 0;
}
map $remote_addr $public_local {
~^192\.168\. 0;
default 1;
}
server {
...
# access-private.log for requests from local network
access_log /path/to/access-private.log main if=$private_ip;
# access.log for all other requests
access_log /path/to/access.log main if=$public_ip;
...
}
编辑:其实geo
指令更适合映射$remote_addr
:
geo $private_ip {
192.168.0.0/16 1;
default 0;
}
geo $public_local {
192.168.0.0/16 0;
default 1;
}
太明显了,0/1需要颠倒,问题是关于将本地网络的请求的日志指向另一个文件。我用适当的解决方案修改了答案 – Pavel