Nginx 有条件地设置一个变量

Sam*_*aye 9 nginx

我想在我网站的特定子域上允许 1GB 上传,称为upload.xxx.xx.xx.

目前我正在尝试类似的东西:

server {
    if ( $host = 'upload.xxx.xx.xx' ) {
           client_max_body_size 1000M;
    }
}
Run Code Online (Sandbox Code Playgroud)

但当然它给了我一个关于client_max_body_size不应该在那里的错误。

有没有办法在不复制两个vhosts 的情况下完成我想要的,否则所有设置都相同,或者另一方面,我不应该费心去确保用户只能在upload子域上上传大于 10MB 的文件?

cns*_*nst 10

我不确定它是否特别适用于client_max_body_size,但总的来说,nginx 确实允许完全按照您的描述进行操作。

server {
    set $cmbs 100K;
    if ( $host = 'upload.xxx.xx.xx' ) {
           set $cmbs 1000M;
    }
    client_max_body_size $cmbs;
}
Run Code Online (Sandbox Code Playgroud)