如何在if条件里配置access_log文件


我希望能把不同UA的的访问日志定位到不同的access_log里,但是access_log这个参数貌似不允许放在if里。
我有不想通过rewrite之类的方法,把不同的请求定位到不同的location里,在同一个location里如何依据UA来指定accesss_log呢?

nginx access_log

sanmao 11 years, 8 months ago

可以这么配置,应该还有更好的写法。

location /log {
            if ($http_user_agent ~ MSIE ) {
                  access_log /var/log/msie.log;
            }
            if ($http_user_agent ~ Opera ) {
                  access_log /var/log/opera.log;
            }
            if ($http_user_agent ~ Webkit ) {
                  access_log /var/log/webkit.log;
            }
            if ($http_user_agent ~ Mozilla ) {
                  access_log /var/log/mozilla.log;
            }
            add_header "Content-Type" "text/plain;charset=UTF-8";
            return 200  "$http_user_agent";
        }
吃人的虎型妖兽 answered 11 years, 8 months ago

Your Answer