![varnish はポートからサービスを提供して、リクエストを別のポートに複製できますか?](https://rvso.com/image/769310/varnish%20%E3%81%AF%E3%83%9D%E3%83%BC%E3%83%88%E3%81%8B%E3%82%89%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%82%92%E6%8F%90%E4%BE%9B%E3%81%97%E3%81%A6%E3%80%81%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%82%92%E5%88%A5%E3%81%AE%E3%83%9D%E3%83%BC%E3%83%88%E3%81%AB%E8%A4%87%E8%A3%BD%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B%3F.png)
現在の展開で解決すべき問題があります。現在の状況は次のようになります。
uWSGI でバックアップされたポート 8000 の Nginx の前にあるポート 80 の Varnish
ここでの問題は、クライアントが、ビジネス ロジックに必要な、uWSGI で提供される Python で実装された社内分析をいくつか実装したいということです。ほとんどの varnish ヒットはカウントされません (ヒットは匿名です)。2 つの解決策が考え出されました。
- クライアントからキャッシュされていないサーバーにアクセスする(ここでクライアントはAndroidデバイスです。リクエストごとに2つのリクエストは、バッテリー使用量の点で非常にコストがかかります。
- 分析サーバーがリクエストを取り込むことができる別のサーバーに、varnish のリクエストをプロキシまたは複製します。UDP を使用する場合もあります。
2 番目の解決策は関連していますか? これを実行することは可能ですか? 可能であれば、どうすれば実行できますか?
答え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/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