2016-09-06 49 views
1

如果请求来自我的本地网络(例如192.168.x.x),如何将访问日志重定向到替代文件? 我发现some hints我如何根据请求者IP禁用日志,但在我的情况下,我想将这些请求记录到另一个文件中,以便为了开发目的,我只能在特定文件中看到我自己的日志。本地请求的nginx替代日志文件

回答

0

答案出现在您引用的页面中,您只需要将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; 
    ... 
} 

详见thisthis

编辑:其实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; 
} 

详见this document

+0

太明显了,0/1需要颠倒,问题是关于将本地网络的请求的日志指向另一个文件。我用适当的解决方案修改了答案 – Pavel