OpenStreetMap经常发送Gateway Timeout错误

LBe*_*Bes 4 javascript openstreetmap 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>
Run Code Online (Sandbox Code Playgroud)

但是,我在地图上随机位置看到一些灰色方块,我在javascript控制台中得到以下Leaflet错误代码:

http://a.tile.openstreetmap.org/6/8/25.png 504 (Gateway Timeout)
Run Code Online (Sandbox Code Playgroud)

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

Iva*_*hez 12

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

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

OSMF的厨师食谱回购的屏幕截图

请记住,在OSM瓷砖服务器和代理服务器是由一队(真棒)保持志愿系统管理员和,虽然他们尽最大努力,以确保一切正常运行时,OSM基金会不能做出的任何质量保证服务.

了解更多关于这个在https://operations.osmfoundation.org/在具体https://operations.osmfoundation.org/policies/tiles/

谁会知道什么是错的以及如何解决它

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

  • 有耐心等待系统管理员解决问题.
  • 潜伏在OFTC#OSM-dev IRC频道(这里有更多信息),明确地知道什么是错的,礼貌地问.如果你这样做,不要对那里的人民造成滋扰; 它只会减慢速度.
  • 向OSMF捐款,以便提高其运营能力.
  • 志愿成为OSMF运营工作组的一员,或为镜像服务器等提供硬件.

如果您不希望受到OSMF的限制,那么有几种常见的替代方案:

  • 使用商业磁贴提供商(此处列出一些提供商)
  • 托管自己的瓷砖(更多信息请点击此处)
  • 缓存切片.与大多数商业供应商不同,OSM允许您以任何您想要的方式存储,代理和缓存切片.事实上,只要你采取一点点谨慎(即不为你的缓存设定种子,这将触发批量下载),鼓励任何可以减轻OSMF服务器负载的事情.