Nginx setzt eine Variable bedingt

Nginx setzt eine Variable bedingt

Ich möchte Uploads von 1 GB auf einer bestimmten Subdomain meiner Site namens zulassen upload.xxx.xx.xx.

Momentan versuche ich so etwas wie:

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

Aber natürlich erhalte ich eine Fehlermeldung, dass es client_max_body_sizedort nicht vorhanden sein sollte.

Gibt es eine Möglichkeit, mein Ziel zu erreichen, ohne die beiden vhosts zu duplizieren (da ansonsten alle Einstellungen gleich sind), oder sollte ich mir andererseits nicht die Mühe machen, sicherzustellen, dass der Benutzer auf die uploadSubdomain nur Dateien hochladen kann, die größer als 10 MB sind?

Antwort1

Ich bin nicht sicher, ob es speziell mit funktioniert client_max_body_size, aber im Allgemeinen ermöglicht Nginx genau das, was Sie beschreiben.

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

verwandte Informationen