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

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

阅读 7.3k
1 个回答

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

        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";
        }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题