0
我在調查是否可以使用Varnish來加速REST API。我可以使用Varnish使任意緩存條目無效嗎?
基本上,我想緩存GET
需要很長時間。但是,當接收到PUT
/POST
/DELETE
請求時,我想分析該URL,並根據我找到的信息,我想清除緩存條目。
例如:
GET /documents/:docType // return document list for specified docType
DELETE /document/:docType/:docId // delete a document
GET /documents/A0 <-- cached
GET /documents/A1 <-- cached
DELETE /document/A0/333 <-- first entry is purged
我可以與VCL實現這一目標?
啓用PURGE不會造成太大的傷害,因爲它清除了一個單一的對象,與確切的URL匹配,並且該URL不能包含通配符(如Varnish sto使用散列標識符而不是URL本身的res對象,所以模式是沒有意義的)。另一方面,BAN可能是危險的, – karatedog
是的,這就是我的意思。儘管如此,深入思考它並不是100%肯定的,也許如果你允許清除一個沉重的靜態對象,你可以通過清除和重複加載來暴露DDoS攻擊。 – Redithion
無論您使用哪種方法,如果在請求中啓用 - 說 - PUT方法,然後是新生成的響應,則您仍然易受DDoS攻擊,因爲此進程無法緩存。潛在的攻擊者只需要爲該PUT找到適當的URL。雖然不知道應用程序的內部結構,但知道這些重物是什麼並不是微不足道的。 – karatedog