nginx代理配置不将请求转发到后端服务器

时间:2016-03-29 00:10:22

标签: nginx

以下是我的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/;
}

1 个答案:

答案 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块中。