编程语言
首页 > 编程语言> > javascript – OpenStreetMap经常发送Gateway Timeout错误

javascript – OpenStreetMap经常发送Gateway Timeout错误

作者:互联网

我在程序中使用传单映射,代码如下:

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

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

解决方法:

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

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

Screenshot from OSMF's repo for Chef recipes

请记住,OSM磁贴服务器和代理服务器由(非常棒的)志愿者系统管理员团队维护,虽然他们尽最大努力保持一切正常运行,但OSM Foundation无法保证服务质量.

https://operations.osmfoundation.org/,特别是https://operations.osmfoundation.org/policies/tiles/了解更多相关信息

Would anyone know what’s wrong and how to solve it?

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

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

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

>使用商业瓷砖供应商(某些供应商列于here)
>托管自己的瓷砖(more information here)
>缓存切片.与大多数商业供应商不同,OSM允许您以任何您想要的方式存储,代理和缓存切片.事实上,只要你采取一点谨慎措施(即不会使你的缓存播种,这会触发批量下载),鼓励任何能减轻OSMF服务器负载的东西.

标签:javascript,leaflet,openstreetmap
来源: https://codeday.me/bug/20190910/1799451.html