OpenStreetMap经常发送Gateway Timeout错误

时间:2018-06-08 09:30:14

标签: javascript leaflet openstreetmap

我在程序中使用传单地图,代码如下:

<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)

有人会知道什么是错的以及如何解决它?

1 个答案:

答案 0 :(得分:10)

来自OpenStreetMap磁贴服务器的50倍错误是OSM方面的问题,而不是由于您在网站或应用程序中使用(或滥用)OSM磁贴而导致的问题。

根据问题的具体时间和日期来判断,我会做出一个疯狂的假设,并说你在网络瞬间过载期间击中了一个squid代理服务器,而从squid 2到squid 3的系统范围升级过去几天一直在进行(请注意下面的屏幕截图是针对OSM服务器持有chef devops recipes的git repo,以及的事实我可以看到OSM服务器的状态很棒)。

Screenshot from OSMF's repo for Chef recipes

请记住,OSM磁贴服务器和代理服务器由(强大的)志愿者系统管理员团队维护,尽管他们尽最大努力保持一切正常运行,但{ {3}}可以对服务质量做出任何保证。

OSM Foundation,特别是https://operations.osmfoundation.org/

了解详情
  

有人知道错误和如何解决

通常,OSMF服务的暂时故障可以通过以下方式解决:

  • 有耐心等待系统管理员解决问题。
  • 潜伏在OFTC#OSM-dev IRC频道(https://operations.osmfoundation.org/policies/tiles/),明确知道错误和礼貌提出的要求。如果你这样做,不要对那里的人们造成滋扰;它只会减慢速度。
  • 向OSMF捐款,以增加其运营能力。
  • 志愿成为more info here的一员,或为镜像服务器等提供硬件。

如果您不想受到OSMF限制的约束,可以采用以下几种方法:

  • 使用商业磁贴提供商(部分提供商列出OSMF Operations Working Group
  • 托管您自己的图块(here
  • 缓存切片。与大多数商业供应商不同,OSM允许您以任何您想要的方式存储,代理和缓存切片。事实上,只要你小心谨慎(即不要播种缓存,这会触发批量下载),鼓励任何能减轻OSMF服务器负载的东西。