![Varnish 可以從一個連接埠提供服務並將請求複製到另一個連接埠嗎?](https://rvso.com/image/769310/Varnish%20%E5%8F%AF%E4%BB%A5%E5%BE%9E%E4%B8%80%E5%80%8B%E9%80%A3%E6%8E%A5%E5%9F%A0%E6%8F%90%E4%BE%9B%E6%9C%8D%E5%8B%99%E4%B8%A6%E5%B0%87%E8%AB%8B%E6%B1%82%E8%A4%87%E8%A3%BD%E5%88%B0%E5%8F%A6%E4%B8%80%E5%80%8B%E9%80%A3%E6%8E%A5%E5%9F%A0%E5%97%8E%EF%BC%9F.png)
我目前的部署中有一個問題需要解決。現在的樣子是這樣的。
在 uWSGI 支援的連接埠 8000 上,在 Nginx 前面的連接埠 80 上進行清漆
這裡的問題是,客戶想要實作一些商業邏輯所需的內部分析,這些分析是用 uWSGI 提供的 Python 實現的。大多數的清漆點擊次數都沒有被計算在內(點擊次數都是匿名的)。提出了兩種解決方案。
- 從客戶端存取非快取伺服器(這裡客戶端是 Android 裝置。每個請求兩個請求在電池使用方面非常昂貴
- 將 varnish 處的請求代理程式或複製到分析伺服器可以提取請求的另一台伺服器。可能與 UDP 相關。
第二個解決方案相關嗎?是否有可能做到這一點?如果是的話,怎麼有人能做到這一點?
答案1
vmod_curl
可以向外部端點發送額外的請求。我建議您透過 Varnish 模組來完成此vmod_curl
操作cURL
。
看https://github.com/varnish/libvmod-curl了解更多。
然而,為每個傳入請求發送額外的呼叫可能會對您的分析系統造成很大的負擔。您可能使用 Varnish 的原因是為了避免您的原始系統過載。
Varnish 的日誌記錄和統計工具
在分析方面,Varnish 提供的工具是首屈一指的。
以下是有關 Varnish 日誌記錄和統計工具的一些參考:
- http://varnish-cache.org/docs/6.0/reference/varnishlog.html
- http://varnish-cache.org/docs/6.0/reference/varnishncsa.html
- http://varnish-cache.org/docs/6.0/reference/varnishstat.html
- http://varnish-cache.org/docs/6.0/reference/varnishtop.html
日誌記錄 ( varnishlog
, varnishtop
& varnishncsa
) 工具是基於 VSL,因此以下是一些 VSL 參考:
- http://varnish-cache.org/docs/6.0/reference/vsl.html
- http://varnish-cache.org/docs/6.0/reference/vsl-query.html
最後,這是對 所使用的計數器的引用varnishstat
:http://varnish-cache.org/docs/6.0/reference/varnish-counters.html