簡體   English   中英

如果你的應用程序放在清漆前面,你如何做日志記錄

[英]how do you do logging if your app is put in front of varnish

清漆背后的邏輯是它永遠不會觸及您的ruby / php代碼庫並直接由緩存提供。 如果我有一個電子商務網站,並且對於每個類別頁面我想記錄用戶/ IP地址X在哪個時間查看的特定頁面,我將這個日志代碼放在我的PHP代碼中。 然而,當我用Varnish運行應用程序時,我失去了所有這些能力。 我對網關代理緩存很新,有誰能開導我?

解決此問題的最簡單有效的方法是創建一個只執行日志記錄部分的ajax請求。 這樣,您仍然可以緩存整個頁面,而禁用ajax請求的緩存以使其能夠記錄所有用戶。 您將從清單轉發到ajax請求的IP(使用X-Forwarded-For),您可以使用javascript輕松獲得的URL並包含在ajax調用中(瀏覽器引用標頭不可靠)。

一個相當簡單的事情是編寫一個腳本來解析varnish日志,並檢索興趣頁面,ips和其他有趣的信息。 它可以每天運行一次或更頻繁,具體取決於您的需求。

通過在@Clarence響應中使用ajax請求,您可能不會包含未激活javascript的訪問者(但您可以實時獲取您的統計信息)

您可以向Varnish添加一些邏輯以轉發IP地址,因此您可以擁有客戶端IP和請求的URL的完整Web服務器日志。

此示例適用於apache: Varnish Client IP未登錄Apache Logs

[編輯]以上建議僅適用於緩存未命中。 客戶端JS推薦。

您還可以考慮使用javascript來輪詢包含Google Analytics等信息的服務器。 http://www.google.com/analytics/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM