以下是我的nginx.conf文件的相关部分。 当我删除conf文件中的初始位置块时,我只看到js | css ...请求转发到我的后端服务器。我想要完成的是关闭那些扩展文件的nginx访问日志记录。
有人知道一个有效的nginx配置技术,允许我关闭访问日志但仍将这些请求转发到代理位置吗?
...
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
access_log off;
}
location / {
if ($ignore_ua) {
access_log off;
return 200;
}
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:7777/;
}
答案 0 :(得分:1)
nginx
选择一个位置块来处理请求。如果是.js
个文件,则会使用您的location ~* \.(js|css|png|jpg|jpeg|gif|ico)$
块。 location /
块中没有涉及任何指令。有关详细信息,请参阅this document。
如果需要条件记录,可以将if=
参数用于access_log
指令而不是单独的位置块。有关示例,请参阅this document。
在您的情况下,它可能如下所示:
map $request_uri $loggable {
default 1;
\.(js|css|png|jpg|jpeg|gif|ico)(\?|$) 0;
}
access_log /path/to/access.log combined if=$loggable;
请注意,map
指令位于http
块中。