Nginxは条件付きで変数を設定します

Nginxは条件付きで変数を設定します

というサイトの特定のサブドメインで 1GB のアップロードを許可したいと考えていますupload.xxx.xx.xx

現在、次のようなことを試しています:

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

しかし、もちろん、client_max_body_sizeそこには存在しないはずのものがあるというエラーが表示されます。

2 つの を重複させずに目的を達成する方法はありますかvhost? それ以外の設定はすべて同じですか? 逆に、ユーザーがサブドメインで 10 MB を超えるアップロードのみを行えるようにする手間をかける必要はないのでしょうかupload?

答え1

特に で動作するかどうかはわかりませんclient_max_body_sizeが、一般的に、nginx では、まさにあなたが説明したことを行うことができます。

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

関連情報