2010-01-27 103 views
7

所以我有一個使用CouchDB作爲後端的應用程序。 Couch並沒有真正擁有它的安全/用戶模型,並且默認情況下,任何人都可以執行任何操作(包括刪除記錄甚至整個數據庫)。但是,如果我們只限於GET請求,我們會更安全。nginx作爲反向代理來限制http動詞訪問

我希望我可以把nginx作爲一個反向代理,但我找不到一個選項,可以讓你根據動詞進來過濾請求.Pound這樣做,所以我正在考慮去那條路線,但我們已經廣泛地使用了nginx,不必在混合中添加其他技術。任何人都知道是否有一個選項可以讓這種情況發生?

我甚至可以解決Apache中的mod_proxy選項。有任何想法嗎?

回答

8

您可以從$request_method變量中訪問HTTP請求類型。因此:

location/{ 
    if ($request_method = 'GET') { 
    proxy_pass couchdb_backend; 
    } 
} 
+0

甜,感謝夥計! – 2010-02-18 22:10:03

14

請嘗試使用limit_except指令代替。最好避免使用if,因爲if is evil

limit_except GET { 
    deny all; 
} 

Reference