2016-04-28 58 views
0

我有一個主頁面,動態內容對於授權/非授權用戶是不同的。我需要在該頁面的中間放置一個區塊和「10個頂層實體」。nginx如何在動態網頁的中間緩存一些塊

該塊由freemarker生成,數據獲取了一些對我的數據庫很重的SQL查詢,但結果的生存時間大約爲1小時甚至更長。 所以我認爲我可以生成並緩存它在nginx級別。

我看到有兩種方式:

  • 使用nginx的SSI模塊,可以幫助包括和緩存

  • 設置的onload的JavaScript函數,它將獲取再向HTTP服務器發送一個請求

我的問題:什麼是正確的方法來處理這種情況? 可能有另外一種方法來處理這種情況嗎?

回答

0

這完全取決於您的設置和具體情況。引入額外的組件集成到項目並不總是一個好的解決方案,尤其是當應用程序邏輯溢出到這些 - 如果在項目已被使用,如果不是

  • SSI是可行的。

  • 第二個請求是最容易實現的,在這種情況下,你也可以利用瀏覽器緩存,這可能是一些幫助

  • 第三種選擇是有它在應用程序級高速緩存(共享分佈式緩存/ Redis的/ etc),或者甚至有一個物化數據庫視圖,以便沉重的查詢變得不那麼重。