fragen stichworte

OSRM auf Nginx über SSL

Ich habe OSRM (Open Source Routing Machine) mit nginx eingerichtet. Es funktioniert so, wie es sollte. Aber das Problem ist, ich kann es nicht über ssl arbeiten lassen. Ich habe die Ports 443 eingestellt, die Seite über Nginx arbeitet mit https, alles ist in Ordnung, nur der OSRM-Dienst oder wie nenne ich ihn, der auf Ubuntu-Maschine läuft, funktioniert nicht. Die Seite, wenn ich auf/location zugreife, sagt:

400 Bad Request

The plain HTTP request was sent to HTTPS port

Hier ist meine osrm.config-Datei:

 upstream osrm {
  # commented out  server 0.0.0.0:5000;
    server 0.0.0.0:443;
}

server {
    listen 443;
    ssl on;
    ssl_certificate/my/valid/path/working;
    ssl_certificate_key/my/valid/path/working;
    server_name  my_server_sub_domain_is_here;

    location/mypath {
        proxy_pass http://osrm/;
        proxy_set_header Host $http_host;
    }
}

antworten

Mit Ihrer aktuellen Konfiguration wird der SSL-Teil auf dem Nginx-Server beendet.

Im Folgenden wird die zusätzliche Konfiguration aufgeführt, die Sie benötigen.

upstream osrm {
  # commented out  server 0.0.0.0:5000;
    server 0.0.0.0:443;
}

server {
    listen 443;
    ssl on;
    ssl_certificate/my/valid/path/working;
    ssl_certificate_key/my/valid/path/working;
    server_name  my_server_sub_domain_is_here;
    proxy_ssl  on;
    proxy_ssl_certificate    /etc/ssl/certs/backend.crt;
    proxy_ssl_certificate_key/etc/ssl/certs/backend.key;

location/mypath {
        proxy_pass http://osrm/;
        proxy_set_header Host $http_host;
    }

Die von mir hinzugefügten Teile führen die folgenden

aus

proxy_ssl Weist Nginx an, Upstream-Datenverkehr über SSL zu senden. docs
proxy_ssl_certificate Definiert das Zertifikat, das für den SSL-Verkehr verwendet werden soll. docs
proxy_ssl_certificate_key Definiert den privaten Schlüssel für das verwendete Zertifikat. Dokumente

Es wurde behoben. Ich habe gerade ersetzt:

proxy_pass http://osrm/;

mit:

proxy_pass localhost:5000;