我试图在 nginx access_log 中仅记录 java-script 文件请求。我尝试使用在此站点上找到的以下代码:
location ~* ^.+.(jpg|jpeg|gif|css|png|html|htm|ico|xml|svg)$ {
access_log off;
}
问题是它根本不允许获取请求,并且在尝试运行在浏览器中执行 js 文件的 html 文件时出现 404 错误。
我希望一切都能正常工作,但访问日志只记录对 js 文件的请求。我怎么做?
我试图在 nginx access_log 中仅记录 java-script 文件请求。我尝试使用在此站点上找到的以下代码:
location ~* ^.+.(jpg|jpeg|gif|css|png|html|htm|ico|xml|svg)$ {
access_log off;
}
问题是它根本不允许获取请求,并且在尝试运行在浏览器中执行 js 文件的 html 文件时出现 404 错误。
我希望一切都能正常工作,但访问日志只记录对 js 文件的请求。我怎么做?
将它放在服务器块中,并确保正确设置了“根”。它确实有效
工作示例:
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires +60d;
access_log off;
}
我在服务器块中有这个,而不是位置块。
或者,您可以将所有请求保留在单个中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;
}