Routing na serwerze

Z UMP

Spis treści

Konfiguracja serwerów OSRM na potrzeby projektu UMP

Na potrzeby projektu UMP skonfigurowane zostały trzy serwery wyznaczające trasy używane do prezentacji na www.

Każdy z nich obsługuje inny tryb routingu: samochodowy, rowerowy i pieszy.

Poniższa strona opisuje szczegóły techniczne instalacji.

Kod i dokumentacja projektu Open Source Routing Machine (OSRM) http://project-osrm.org/

Konfiguracja serwerów OSRM

  • Serwer: osrm1.ump.waw.pl - alias do gen1.ump.net.pl
  • URL
    • samochodowy: osrm1.ump.waw.pl:/OSRMauto
    • rowerowy: osrm1.ump.waw.pl:/OSRMrower
    • pieszy: osrm1.ump.waw.pl:/OSRMpieszy
  • konfiguracja proxy apache'a
       ProxyPass /OSRMrower http://localhost:5001
       ProxyPass /OSRMpieszy http://localhost:5002
       ProxyPass /OSRMauto http://localhost:5000
  • katalog roboczy instalacji:
 umpsrv@osrm1.ump.waw.pl~/osrm-build
  • katalogi robocze trzech routerków:
 osrm-build/OSRM-auto
 osrm-build/OSRM-pieszo
 osrm-build/OSRM-rower
  • pliki konfiguracyjne serwisów:
 osrm-build/OSRM-auto/server.ini
 osrm-build/OSRM-pieszo/server.ini
 osrm-build/OSRM-rower/server.ini
  • przykładowa zawartość server.ini
$ cat osrm-build/OSRM-auto/server.ini
Threads = 8
IP = 0.0.0.0
Port = 5000
hsgrData=/stuff/umpsrv/osrm-build/OSRM-auto/A_CUR/UMP.osrm.hsgr
nodesData=/stuff/umpsrv/osrm-build/OSRM-auto/A_CUR/UMP.osrm.nodes
edgesData=/stuff/umpsrv/osrm-build/OSRM-auto/A_CUR/UMP.osrm.edges
ramIndex=/stuff/umpsrv/osrm-build/OSRM-auto/A_CUR/UMP.osrm.ramIndex
fileIndex=/stuff/umpsrv/osrm-build/OSRM-auto/A_CUR/UMP.osrm.fileIndex
namesData=/stuff/umpsrv/osrm-build/OSRM-auto/A_CUR/UMP.osrm.names
timestamp=/stuff/umpsrv/osrm-build/OSRM-auto/A_CUR/UMP.osrm.timestamp
osrm-build/OSRM-auto/profile.lua
osrm-build/OSRM-pieszo/profile.lua
osrm-build/OSRM-rower/profile.lua

Codzienne odświeżanie danych

Skrypt w cronie robi całą robotę:

 umpsrv@osrm1.ump.waw.pl~/osrm-build/bin/check_and_update_osrm.sh cron 

Oczekuje danych ( UMPxxxx.osm i flagi READY ) w katalogu:

 umpsrv@osrm1.ump.waw.pl~/osrm-build/OSRM-INPUT

Logi z działania:

 umpsrv@osrm1.ump.waw.pl~/osrm-build/bin/check_update.log
 umpsrv@osrm1.ump.waw.pl~/osrm-build/OSRM-auto/osrm-update.log  
 umpsrv@osrm1.ump.waw.pl~/osrm-build/OSRM-pieszo/osrm-update.log
 umpsrv@osrm1.ump.waw.pl~/osrm-build/OSRM-rower/osrm-update.log

Jak uruchomić ręcznie/sprawdzić czy działa

Na serwerze powinny działać trzy procesy

umpsrv@nautilus4p:~/osrm-build$ ps -ef |grep osrm |grep -v grep
umpsrv   13588     1  0 07:11 ?        00:00:11 /stuff/umpsrv/osrm-build/OSRM-auto/osrm-routed-auto
umpsrv   26299     1  0 08:43 ?        00:00:01 /stuff/umpsrv/osrm-build/OSRM-rower/osrm-routed-rower
umpsrv   30372     1  0 Dec23 ?        00:00:31 /stuff/umpsrv/osrm-build/OSRM-pieszo/osrm-routed-piesz

Uruchmienie, zatrzymanie skryptami:

osrm-build/OSRM-auto/osrm-routed-auto.sh [start|stop|restart]
osrm-build/OSRM-pieszo/osrm-routed-pieszo.sh
osrm-build/OSRM-rower/osrm-routed-rower.sh

Sprawdzenie web serwisu poprzez przykładowe zapytanie:

http://osrm1.ump.waw.pl/OSRMauto/timestamp?jsonp=TEST

Podniesienie wersji serwerów OSRM

umpsrv@osrm1.ump.waw.pl~/osrm-build/Project-OSRM
git status
git pull
scons
  • Kopiujemy trzy binaria do katalogu routerków: (UWAGA: osrm-routed za zmianą nazwy )
cp Project-OSRM/osrm-extract Project-OSRM/osrm-prepare OSRM-auto
cp Project-OSRM/osrm-routed                            OSRM-auto/osrm-routed-auto
cp Project-OSRM/osrm-extract Project-OSRM/osrm-prepare OSRM-pieszo
cp Project-OSRM/osrm-routed                            OSRM-pieszo/osrm-routed-pieszo
cp Project-OSRM/osrm-extract Project-OSRM/osrm-prepare OSRM-rower
cp Project-OSRM/osrm-routed                            OSRM-rower/osrm-routed-rower