Freier Zugriff auf MapQuest-Karten wird eingestellt (meshviewer)

Bei vielen Communities wird als Hintergrund für die Karten, wie ffmap oder meshviewer, das Angebot von Mapquest genutzt. Diese beenden zum 11.7.2016 den freien Zugriff. Dass heißt, man muss bis dahin auf andere freie Anbieter wechseln oder ein für wenige Zugriffe kostenloses Paket bei Thunderforest[2], Mapquest[3], Mapbox[4] usw. umsteigen.

2: //thunderforest.com/terms/
3: //developer.mapquest.com/plans
4: //www.mapbox.com/pricing/#

1 „Gefällt mir“

Dann könnten wir hier direkt über freie Alternativen sprechen und dokumentieren wie man sie aufsetzt.

Es ist ohne weiteres möglich, OpenStreetMap zu nutzen. Jedoch sollte man einen Tilecache aufsetzen um den Traffic des OSM-Projekts zu schonen, was mit nginx trivial von statten geht. Man hat dann einen nginx z.B. auf tiles.freifunk-musterstadt.de laufen, der bei Anfragen schaut ob er das Tile in den letzten 7 Tagen schon einmal heruntergeladen hat, und gibt dann entweder die lokale Kopie aus, oder lädt die vom Upstream herunter.

Die Cache-Hit-Rate ist durchaus beachtlich. Gegebenenfalls macht es Sinn, den Tilecache in gewissen Maße zu zentralisieren, damit die Hit-Rate weiter steigt. Den Effekt würde ich aber eher klein einschätzen.

Hier wird auf der OSM-Mailingliste ein Beispielsnippet gegeben: [Tile-serving] New option for tile server: Nginx+Tirex
Ich paste es mal hier:

EDIT: DO NOT USE. Siehe die neue und optimierte Config von @Shiva unten!

# Layout der Hashtabelle für den Cache
proxy_cache_path /var/www/tilecache/osm levels=1:2:2 
# 64 MB Indexstruktur, 500 MB maximale Cachegröße.
# Wenn es voll läuft, hier tweaken.
# So teuer ist Speicher heutzutage auch nicht mehr...
keys_zone=tilecache:64m max_size=500m;

upstream osm_tiles {
   server a.tile.openstreetmap.org;
   server b.tile.openstreetmap.org;
   server c.tile.openstreetmap.org;
}

server {
   # Hier IP-Adresse und Domainname des Servers einsetzen
   listen <your.ip.address>:80;
   server_name <your.tile.domain.com>;

   location / {
     # Alle Anfragen an osm.org weiterleiten
     proxy_pass http://osm_tiles/;
     proxy_cache tilecache;
     proxy_cache_key "$scheme$host$request_uri";
     # Wann die Einträge veralten. Hier müssen immer mindestens 7 Tage stehen
     # (alternativ sollen die Cache-Control header beachtet werden; ist OSM policy)
     proxy_cache_valid 200 302 300h;
     proxy_cache_valid 404 1m;
   }
}

Hat dann auch den Vorteil, dass man die Tiles dann per IPv6 oder sogar Mesh ausliefern kann :smiley:

Unsere aktuelle Config wurde von @Shiva noch gepimpt, vielleicht mag der die ja mal posten, da hab ich keinen Zugriff drauf :smile:

Ich hoffe aber mal schwer, dass die FOSSGIS sich endlich mal vom FFRL helfen lässt, und noch ein paar Tileserver aufstellt…

2 „Gefällt mir“

Wie man andere Tile-Server einbindet kann man für alle Leaflet bassierten Karten hier und hier sehen.

@Tarnatos lustig, dass du das sagst :wink: nord benutzt doch schon den Aachener Tilecache :wink:

aus meinem access.log:

92.226.xxx.yyy - - [24/Jun/2016:11:20:14 +0200] „GET /19/275801/168541.png HTTP/2.0“ 200 5195 „http://mesh.nord.freifunk.net/“ "…

Die aktuell bei uns laufende Konfiguration habe ich mal hier abgelegt…

Diese unterscheidet sich von der oben hauptsächlich dadurch, dass

  • HTTP/1.1 mit Keepalive zum „Backend“ (also den Upstream-Servern) gesprochen wird
  • der Cache auch nach Ablauf der eigenen Cachezeit „stale“ Elemente ausliefert, wenn alle Backends zum revalidieren nicht erreichbar sind
  • und natürlich SSL… :wink:

Grüssele
Shiva

2 „Gefällt mir“

Ja das muss ich demütig zugeben.

Aber das ist atm auf Platz 1 der Todoliste den Titleservercache bei uns aufzusetzen der dann von den Nord Communitys genutzt werden kann. Scheiterte bisher noch an der Zeit.

Ich klemm mich in der nächsten Woche mal da hinter. Damit die Schmarotzerei in Aachen aufhört.

Wie geht man mit dem Effekt um, dass die OSM-Tileserver den Cache nach kurzer Zeit zu blocken beginnen, wegen TOU-Foo? IPv6 und dann Round-Robin?

mach ruhig - mich stört das nicht :wink:

Tun sie nicht. Das halte ich für ein Gerücht…

https://wiki.openstreetmap.org/wiki/Tile_usage_policy#Technical_Usage_Requirements

Wir haben auch mal kurz überlegt, ob wir als Proxy die IP-Adresse des Anfragenden mit entsprechendem HTTP-Header durchreichen, damit OSM identifizieren kann, dass der Proxy-Server nur Anfragen von anderen Leuten durchreicht, aber das haben wir bis jetzt gelassen. Läuft jedenfalls schon seit drei Monaten gut bei uns klopf auf Holz

Auf der Policy-Seite wird auch https://switch2osm.org/ für weitere Info empfohlen und da wird für Seiten noch nicht einmal ein Tile-Cache verlangt…

da sich deine Anwort zwar noch auf das Posting von @yayachiken bezieht antworte ich trotzdem drauf. :wink:

Meine Config zielt genau darauf ab so wenig Requests nach „hinten“ zu machen wie möglich.
Die upstream { .. } Definition beinhaltet schon ein Round-Robin für’s Backend. Dadurch, dass das da alles GEO-DNS Auflösungen sind, werden die Anfragen schon ziemlich lokal bei OSM positioniert. (was allerdings genau für ein potentielles Blocking spricht :wink: )

Trotzdem - sollte es dazu kommen - könnte man ja mal freundlich fragen, was ihnen (OSM) lieber ist… eine IP, die jeden Request nur einmal pro Woche ausführt, oder die 50-100 Einzel-Clients die jeweils dort »einprasseln« und sich mitunter nicht an Cache-Zeiten halten…

Die originären OSM Server unterstützen durchgängig kein IPv6:open_mouth:

@Shiva
Das ist nett danke.

Hast du nen Überblick was so ein Cache an Serverlast produziert? Abhängig davon würde ich es entweder auf die Webseiten/Meshviewer VM packen oder dem Titleproxy ne eigene Vm gönnen.

hmm … so wirklich Last kann ich nicht belegen oder verneinen (das fällt mir halt nicht auf und läuft einfach mit :wink: )… das ist halt Nginx - den seh ich fast nie im top… zumindest nicht in diesen Setups (ich kenn da wohl auch andere Konfigurationen… die haben allerdings auch 10-15k Zugriffe pro Sekunde :wink: …) Ergo: CPU ist schon mal vernachlässigbar.
Natürlich Platten-IO … aber die 500MB da liegen ja wohl eh komplett im Pagecache vom System (die VM hat mal »grosszügige« 2GB)
Ergo: RAM ist der Key… mehr ist da immer mehr.
Und als Webserver natürlich Netzwerk als nötiges Betriebsmittel - da liegt der aktuell bei 10GB RX / 50 GB TX pro Woche - und der Server hat nicht nur den Tile-Cache, sondern auch noch den Rest der Map als weitere vHosts, also inklusive JSON etc…

2 „Gefällt mir“

Technisch ist mir das schon klar, evtl. hatte man dort inzwischen auch ein Einsehen. Wir hatten das letztes Jahr schonmal probiert und eben dann irgendwann die „unschönen“ PNGs im Browser.

Ich habe mal im #osm IRC gefragt.

Dort wurde mir erläutert, dass es kein festes Limit für Zugriffe gibt, sondern dass gesperrt wird, „wenn es Probleme gibt“.

Mir wurde dann von einem Web-Admin empfohlen, einen Custom-HTTP-User-Agent zu setzen, in dem Kontaktinformationen angegeben sind, damit man die problematische Seite vor dem Sperren kontaktieren kann, und dann ne Lösung finden kann. Meinen Vorschlag nginx $Version tile cache for $site <$admin_email> fanden die als Schema gut.

1 „Gefällt mir“

updated


proxy_set_header User-Agent „Mozilla/5.0 (compatible; OSMTileCache/1.0; +mailto:technik@freifunk-aachen.de; +https://map.aachen.freifunk.net/)“;

YMMV

3 „Gefällt mir“

Wir nutzt aktuell HERE die kostenlose Version und ist sehr schnell bisher. Haben maxZoom von 20 wenn man das wünscht und auch eine Hybridmap - Satellit, hilft bei Koordinaten setzten.
Eigener Tiles Server ist auch eine schoene Option, aber ich fand die vielen Icons bei der Standardmap in Innenstadt etwas viel. Der groesste OSM DE Provider hat leider kein https.

Beispiel von HERE map
https://regensburg.freifunk.net/netz/karte/

Die hat einen Zoom auf Leipzig und nicht Regensburg.

Also bei mir ist das Regensburg im fixedCenter.

Darmstadt hat auch HERE als erste Wahl in der liste. Wollte eine Alternative vorstellen/zeigen, die schnell (Übergangs-) Lösung eingebaut werden kann. Hatte nachdem von MapQuest viele Detail Tiles nicht mehr verfügbar waren nach einer alternative gesucht und alle mit https von leaflet durchprobiert. HERE war beste Kombination aus Geschwindigkeit, Design und Infos auf der Map.

iOS 9.3.2

1 „Gefällt mir“

@xaver

Magst du mal eure config.json posten?