0

Mapnik を使用してマップ タイル (PNG) を生成しています。タイルをオンザフライで個別に生成できる URL があります。

http://tiles.example.com/dynamic/MAPID/ZOOM/X/Y.png

各マップ タイルは 256x256 ピクセルです。

ただし、タイルを個別に生成するにはコストがかかります。それらをバッチで生成する方がはるかに効率的です (つまり、1 つの大きな PNG を生成し、それを小さなファイルに分割します)。私もそれを行うことができるURLを持っています:

http://tiles.example.com/dynamic/MAPID

このバッチは、マップのすべてのタイルを生成し、完了すると「OK」を返し、それらをディスクに保存し、次の場所から静的に利用できるようにします。

http://tiles.example.com/static/MAPID/ZOOM/X/Y.png

これは生ファイルを提供するNGINXです。

バッチ生成をトリガーするように Varnish を構成し、それが完了するのを待ってから、有効期限が切れるまで (私の場合は 5 分) 個々のタイルをキャッシュして提供することは可能ですか?

4

1 に答える 1

0

現在、varnish3 はバックエンド フェッチをサポートしていません。この機能は varnish4 で実装する必要があります。代わりに、最初のユーザーが画像にヒットしたときに cron ジョブと varnish がそれらをフェッチするときにそれらをトリガーすることをお勧めします。

また、生成は別のフォルダー/ファイルの場所で実行し、準備ができたら移動することをお勧めします。これにより、生成中にサーバーにアクセスする手間が省けます。

于 2014-04-10T01:27:21.707 に答える