如何logging对不同文件中特定位置的nginx请求?

我有一个nginx作为后端前的代理,我想分开对特定位置的请求到一个单独的文件。

仍然请求应该去相同的后端服务器,但我不想看到他们在主要访问日志里面。

另外我不想指定所有的proxy_东西两次。

server { ... access_log /var/log/nginx/jira.access.log full; error_log /var/log/nginx/jira.error.log; client_max_body_size 150m; location /special/ { } location / { # many lines of config params for proxy_... proxy_pass http://dowa-02.example.com:8080; ... } } 

UPD

嗯… access_log指令有一个“function”。

请求将在处理结束的位置的上下文中logging。 如果在请求处理期间发生内部redirect,这可能与原始位置不同。

try_files的情况下,内部redirect。 尝试更改try_filesinclude和删除命名的位置。

UPD的结束


为了不重复多次“proxy_ stuff”,例如可以使用include指令。 但是try_files和命名的位置要好得多:)

 server { ... access_log /var/log/nginx/jira.access.log full; error_log /var/log/nginx/jira.error.log; client_max_body_size 150m; location /special/ { try_files $uri @backend; access_log /var/log/nginx/special.access.log full; } location / { try_files $uri @backend; } location @backend { # many lines of config params for proxy_... proxy_pass http://dowa-02.example.com:8080; ... } }