NGINX conf波纹管不适用于nginx -t
:
location ~ ^/ETC[0-9](?:\.json|\.(?<ext>csv))?/?$ {
if ($ext) {
set $extOpt '&csv=1';
proxy_set_header Accept 'text/csv'; # BUG HERE!
}
rewrite ^/ETC1 /rpc/etc?q=v1$extOpt; break;
rewrite ^/ETC[2-9] /rpc/etc?q=other$extOpt; break;
proxy_pass http://localhost:3002;
}
nginx:/ etc / nginx / ...:17
中不允许使用[emerg]“ proxy_set_header”指令nginx:配置文件/etc/nginx/nginx.conf测试失败
我看不出问题出在哪里(例如,参见nginx/wiki)...好吧,如果if
无效,有没有一种方法表达有条件的proxy_set_header
?
没有意义,因为在proxy_set_header Accept 'text/csv';
块中使用直接if ($ext)
代替它时,它工作正常。
与this question/answer类似,但不能重复。