我正在尝试client_max_body_size
有条件地设置。我已经按照Nginx 有条件地设置变量的答案中建议的配置,但它对我不起作用。
以下配置文件足以重现:
daemon off;
worker_processes 1;
error_log /dev/stderr debug;
events {
worker_connections 1024;
}
http {
access_log /dev/stdout;
server {
listen 80;
location /test {
set $cmbs 1m;
if ($arg_long) {
set $cmbs 5m;
}
client_max_body_size $cmbs;
echo $cmbs;
}
}
}
当我尝试使用此配置启动 Nginx 时,它会停止并抱怨
nginx:[emerg]“client_max_body_size”指令在 /opt/nginx/nginx.conf:16 中的值无效
如果我删除了有问题的指令,Nginx 会启动并以我期望的方式回显设置值。
我正在运行 openresty/1.7.10.1。我也在 nginx/1.9.4 上尝试过上面的小配置。
Nginx 自 1.9.4 版起不支持变量 client_max_body_size。
也许你可以通过定义一个
upstream
并使用proxy_pass
在正确的条件下重定向来解决这个问题:http://nginx.org/en/docs/http/ngx_http_upstream_module.html