我正在尝试仅在nginx access_log中记录java脚本文件请求。 我尝试使用我在本网站上找到的以下代码:
location ~* ^.+.(jpg|jpeg|gif|css|png|html|htm|ico|xml|svg)$ {
access_log off;
}
问题是它根本不允许获取请求,并且在尝试运行在浏览中执行js文件的html文件时出现404错误。
我希望一切都能正常工作,但访问日志只能记录js文件的请求。 我该怎么做?
答案 0 :(得分:6)
将其放入服务器块并确保正确设置“root”。它确实有效
工作示例:
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires +60d;
access_log off;
}
我在服务器块中有这个,而不是位置块。
答案 1 :(得分:1)
或者,您可以将所有请求保留在单个 location
内,但使用 access_log
和条件 if
运算符来禁用图像记录:
map $request_uri $is_loggable {
~* ^.+\.(jpg|jpeg|gif|css|png|html|htm|ico|xml|svg)$ 0;
default 1;
}
server {
location / {
access_log /path/to/log/file combined if=$is_loggable;
...
}
}
这里的 combined
是默认日志格式的名称。
你说你只想记录 java-script 文件,所以实际上你可以使用更简单的解决方案:
map $request_uri $is_loggable {
~* ^.+\.js$ 1;
default 0;
}