Nginx definiu uma variável condicionalmente

Nginx definiu uma variável condicionalmente

Quero permitir uploads de 1 GB em um subdomínio específico do meu site chamado upload.xxx.xx.xx.

Atualmente estou tentando algo como:

server {
    if ( $host = 'upload.xxx.xx.xx' ) {
           client_max_body_size 1000M;
    }
}

Mas é claro que isso me dá um erro sobre o client_max_body_sizeque não deveria estar lá.

Existe uma maneira de realizar o que eu quero sem duplicar os dois vhost, todas as configurações são as mesmas, ou por outro lado, não devo me preocupar em ter certeza de que o usuário só pode fazer upload de mais de 10 MB no uploadsubdomínio ?

Responder1

Não tenho certeza se funciona especificamente com client_max_body_size, mas, em geral, o nginx permite fazer exatamente o que você descreve.

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

informação relacionada