有条件地设置client_max_body_size

有条件地设置client_max_body_size

我正在尝试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

也许您可以通过定义upstreamproxy_pass在正确条件下重定向来解决这个问题:

http://nginx.org/en/docs/http/ngx_http_upstream_module.html

相关内容