需要记录 nginx 的 post data
所以需要把 post 单独拿出来。但是网站又有上传头像功能,于是 post data 里把上传的图片也记录了,导致 log 超大
于是想用下面的方法来实现,简单说如果发现 uri 里带 upload ,就内部跳转到不记录 post data 的部分,如果发现是 post 请求,则跳转到记录 post data 的部分
location ~ \.php$ { try_files $uri =404; if ($arg_mod = "upload" ) { return 485; break; } if ($request_method = POST){ return 484; break; } error_page 484 = @post; error_page 485 = @flash; fastcgi_pass backend; } location @post{ internal; access_log /log/post.log postlog; try_files $uri =404; fastcgi_pass backend; } location @flash{ internal; access_log /log/flash.log main; try_files $uri =404; fastcgi_pass backend; } 问题就来了, if is evil ,上面的这种写法应该是不推荐 那么,有没有什么更好的方法来实现这个需求呢?
