0

我正在构建一个地图应用程序,并且正在使用 TileStache 进行切片生成和缓存。我已经在我的 rails 应用程序中使用了 NGinx+Passenger,并试图弄清楚如何从同一个 Web 服务器 (NGinx) 为我的 rails 应用程序和 TileStache 提供服务。从 NGinx 文档看来,NGinx 需要重新编译以添加 WSGI 模块。因为我已经在使用 Phusion Passenger 模块,所以我不知道该怎么做。我在正确的轨道上吗?任何建议,将不胜感激。

4

2 回答 2

0

因为对于这个特定的项目,数据是静态的,所以我决定使用 TileStache 来播种/加热缓存并将切片作为静态资产提供服务。

于 2012-06-28T04:45:18.207 回答
0

我们使用 nginx 来提供瓦片。效果很好。

我们将 nginx 配置为 proxy_pass 到 wsgi 服务器。在启用站点的文件中:

 location / {
     proxy_pass          http://127.0.0.1:XXXXSOMEPORTXXXX;
     proxy_set_header    Host       $host;
     proxy_set_header    X-Real-IP  $remote_addr;
     proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_connect_timeout 900s;
     proxy_read_timeout 900s;
 }

我给了它一个很长的超时时间,所以客户端可以等待一段时间,你可能想要更少。

然后我创建了一个 python 虚拟环境并安装了 gunicorn 来运行 tilestache 服务器。它可以使用如下命令运行:

XXXXPATHTOVIRTUALENVXXXX/bin/gunicorn --max-requests 1  --timeout 900 --graceful-timeout 890 -b 127.0.0.1:XXXXSOMEPORTXXXX -w 20 "TileStache:WSGITileServer('XXXXPATHTOTILESCONFIGXXXX/tiles.conf')"

我们通过在 supervisord 中使用该行来保持 gunicorn 运行,因此主管负责在 gunicorn 服务器终止或系统重新启动时启动它。

Tilestache 非常棒!

于 2014-08-04T07:03:56.690 回答