【问题标题】:TileStache and NGinxTileStache 和 Nginx
【发布时间】:2012-06-25 18:28:42
【问题描述】:

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

【问题讨论】:

标签: ruby-on-rails-3 nginx geospatial wsgi


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我们使用 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 非常棒!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-22
      • 2011-01-01
      • 2011-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多