Nginx 有條件地設定變數

Nginx 有條件地設定變數

我想允許在我網站的特定子網域上傳 1GB 大小的文件,該子網域為upload.xxx.xx.xx.

目前我正在嘗試類似的事情:

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

但當然它給了我一個關於client_max_body_size不應該在那裡的錯誤。

有沒有一種方法可以在不重複這兩個vhosts 的情況下完成我想要的任務,否則所有設定都是相同的,或者另一方面,我是否應該不厭其煩地確保用戶只能在upload子網域上傳大於10MB 的檔案?

答案1

我不確定它是否專門適用於client_max_body_size,但是,一般來說,nginx 確實允許執行您所描述的操作。

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

相關內容