开放街图经常发送网关超时错误。

5

我正在使用下面的代码在程序中使用leaflet地图:

<style>
     <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.1/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin=""/>
    @import url(//cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.2/leaflet.css);
    #map {
        width: 960px;
        height: 500px;
    }
</style>

<body>
   <div id="map"/>
   <script type="text/javascript">
        var osmUrl = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
            osmAttrib = '&copy; <a href="http://openstreetmap.org/copyright">OpenStreetMap</a> contributors',
            osm = L.tileLayer(osmUrl, {maxZoom: 20, attribution: osmAttrib});

        var map = L.map('map').setView([37.5, -115], 6).addLayer(osm);

</body>

然而,我在地图上的随机位置看到一些灰色方块,并在javascript控制台中得到以下Leaflet错误代码:
http://a.tile.openstreetmap.org/6/8/25.png 504 (Gateway Timeout)

有人知道是什么问题以及如何解决吗?


最近我看到了几份类似的报告。这是OSM服务器返回的错误,而不是leaflet或您的代码的问题。建议在OSM论坛上跟进。 - peeebeee
1
好的,我应该编辑我的问题(这样它就会出现在谷歌上),并将其带到OSM论坛! - LBes
1个回答

12
来自OpenStreetMap瓦片服务器的50x错误是由OSM方面引起的问题,而不是您在网站或应用程序中使用(或误用)OSM瓦片引起的问题。
根据您提出问题的具体时间和日期,我会大胆猜测并说,您在过去几天中,当系统从squid 2升级到squid 3时在网络短暂超载期间击中了其中一个Squid代理服务器(请注意下面的屏幕截图是用于保存chef devops recipes的git repo OSM服务器,并且可以看到OSM服务器的状态是很棒的)。

Screenshot from OSMF's repo for Chef recipes

请记住,OSM瓦片服务器和代理服务器由一群(很棒的)志愿系统管理员维护,尽管他们尽力保持一切正常运行,但OSM Foundation不能保证服务质量。
更多信息请访问https://operations.osmfoundation.org/,具体请参阅https://operations.osmfoundation.org/policies/tiles/
通常情况下,可以通过以下方式解决OSMF服务的暂时故障:
- 耐心等待系统管理员修复问题。 - 在OFTC #OSM-dev IRC频道(more info here)中了解具体情况并礼貌地提问。如果这样做,请不要打扰那里的人;这只会减慢事情的进展速度。 - 向OSMF捐款,以便增加其运营能力。 - 自愿成为OSMF Operations Working Group的一员,或者为镜像服务器等贡献硬件。
如果您不想受到OSMF的限制,有几种常见的替代方案:
  • 使用商业瓦片提供者(这里列出了一些提供者here
  • 托管自己的瓦片(more information here
  • 缓存瓦片。与大多数商业供应商不同,OSM允许您以几乎任何方式存储、代理和缓存瓦片。事实上,只要您稍加小心(即不要种植缓存,这会触发批量下载),任何可以减轻OSMF服务器负载的方法都是受欢迎的。

感谢您提供非常详细的答案。实际上,我已经连续三天遇到这个问题了,所以我不确定它是否是由于临时问题引起的。 - LBes
我一直在查看 #osm-dev IRC 频道的历史记录,似乎几天前 Squid 服务器已经升级了,其中一些服务器(ridgeback 和 culebre)在向终端用户提供服务时出现了一些 50x 错误问题;我的错误分析可能是错误的。在 IRC 频道上闲逛可能是个好主意。 - IvanSanchez
好的,再次感谢@IvanSanchez,我会将您的答案标记为已接受。(无论如何,我已经点赞了它)。 - LBes
2019/11再次发生? - Dan Jacobson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接