3

私がやっていることは、リクエストがDjangoにヒットするのを避け、nginxから直接キャッシュされたデータを提供することです。
関連する質問:DjangostaticgeneratorとCACHE_BACKEND

これに関しては、2つの選択肢があるようです:
https ://github.com/torchbox/django-nginx-memcachehttps:
//github.com/mrj0/staticgenerator-これは使いやすいようです

django-nginx-memcacheを試した後、いくつかの欠点が見つかりました。

  • djangoからキャッシュされたコンテンツを提供するためのフォールバックはありません(修正可能)。
  • md5の合計URLを生成するためにnginxを再コンパイルする必要があります(これは修正できないと思います)。
  • キャッシュする必要のあるURLパターンのリストを定義できると便利です。これまでのところ、デコレータのみが使用可能です(修正可能)。
  • 私の意見では、コードはUpdateCacheMiddlewareFetchFromCacheMiddlewareを使用した標準のdjangoキャッシュバックエンドをモデルにしたものにする必要があります。これにより、標準のdjangoキャッシュソリューションが存在する場所にnginxキャッシュを実装しやすくなります。また、問題#1を解決します(修正可能)。
  • モジュールの奇妙な命名。プロジェクトの名前はdjango-nginx-memcacheですが、パッケージの名前はDjango-Memcache-for-Nginxで、アプリnginx_memcacheはdjangoのinstalled_appsに含めることができます(修正可能)。

どちらが速いですか?
どちらを使用しますか、またその理由は何ですか?django-nginx-memcache
で発生する問題を修正する必要がありますか、それともstaticgeneratorの方が優れていますか?

4

3 に答える 3

1

これは私のすべての質問に答えているようで、 django-nginx-memcacheよりもエレガントなソリューションを提供します。これはdjangoキャッシュシステムにパッチを適用しています:http ://www.willmcgugan.com/blog/tech/2009/3/1/fast -caching-with-django-and-nginx /

ページのコメントからのベンチマーク:

静的コンテンツは、nginxを使用してmemcacheから提供するよりもほぼ4倍高速です。

リクエストレート:6243.8 req / s(0.2 ms / req)(static html)

リクエストレート:2285.5 req / s(0.4 ms / req)(memcache内の同じhtml)

staticgeneratorを使うと思いますが、お気軽に投稿してください。

編集:

2つのWebサーバーを並行して実行していることに気付きました。静的ジェネレーターを使用する場合は、キャッシュされたデータを同期する方法が必要になります。私はそれをフォークして、ネットワークを介して両方のサーバーにファイルを書き込むことができると思います。これについて何か考えはありますか?

于 2012-09-06T07:57:37.643 に答える
0

生成されたページをキャッシュしたいようです。Varnish(https://www.varnish-cache.org/)を試しましたか。

しばらく前に、Djangoのキャッシュを調査していましたが、Varnishキャッシュを使用して生成されたページをキャッシュすることに関するこの記事を見つけました。 http://ghughes.com/blog/2011/11/11/using-varnish-with-django-for-high-performance-caching/

それはあなたのために働くかもしれません。

于 2012-09-06T06:05:06.013 に答える
0

物事をシンプルに保つという精神で、Nginxのプロキシモジュールでキャッシュディレクティブを使用するのはどうですか?

https://serverfault.com/a/68160/46143およびhttp://www.rfxn.com/nginx-caching-proxy/に沿って

于 2012-09-06T09:23:00.380 に答える