我正在尝试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] /opt/nginx/nginx.conf:16 中的“client_max_body_size”指令值无效
如果我删除有问题的指令,Nginx 将启动,并且我会按照我期望的方式回显设置的值。
我正在运行 openresty/1.7.10.1。我也在 nginx/1.9.4 上尝试了上述小配置。
答案1
答案2
也许您可以通过定义upstream
并proxy_pass
在正确条件下重定向来解决这个问题: