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