對URL映射進行緩存(SSI模式下對內容的通讀),有什麼提高?需要了解URL解析過程。
對於Apache,它提供了兩個磁盤緩存和內存緩存mod_disk_cache,mod_mem_cache。mod_disk_cache在磁盤上維護了一塊多個進程的緩存區,在性能上比mod_mem_cache還要好。
解決SSI吞吐率低的措施: 使用Web服務器磁盤緩存,這能大大提升吞吐率。
過期檢查:
Web服務器緩存對於動態內容或靜態內容過期的檢查機制仍然建立在Http1.1協議的對話上。要爲一個動態內容指定緩存有效期,仍然在Http響應頭中追加Expires標記。如果動態內容沒有輸出Expires標記,Web服務器會使用Last-Modified標記。
可以設置讓特定的動態內容跳過Web服務器緩存區,如Cookies不緩存?
Web服務器緩存不能取代動態程序自身的緩存機制,這樣會導致動態程序依賴特定的服務器,降低了程序的可移植性。
緩存文件描述符:
文件描述符是由無符號整數表示的句柄,進程使用它來標識打開的文件。
對於擁有大量小文件的站點,Web服務器相當大的開銷花在打開文件上,即open()系統調用,這時可以考慮將打開後的文件描述符直接緩存到Web服務器內存中。
Apache提供了mod_file_cache來對緩存文件描述符的配置。緩存文件描述符的緩存方案只適用於靜態內容,目的是減少打開文件的開銷。
將靜態內容整體緩存到磁盤,由於它發生在URL映射的最前端,完全彌補了由於打開文件帶來的開銷,在性能上(吞吐率)比緩存文件描述符時還要好些。