Назад | Перейти на главную страницу

OSRM на Nginx через SSL

Я установил OSRM (машину маршрутизации с открытым исходным кодом) с nginx. Работает как положено. Но проблема в том, что я не могу заставить его работать через ssl. Я установил порты 443, сайт поверх nginx работает с https, все в порядке, только служба OSRM или как ее назвать, которая работает на машине ubuntu, она не работает. Страница, когда я захожу в / location, говорит:

ошибка 400, неверный запрос

На порт HTTPS был отправлен простой HTTP-запрос.

Вот мой файл osrm.config:

  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;
    }
}

С вашей текущей конфигурацией часть ssl завершается на сервере nginx.

Следующее включает дополнительную конфигурацию, которая вам нужна.

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;
    }

Части, которые я добавил, делают следующее

proxy_ssl Сообщает Nginx о необходимости отправки восходящего трафика по ssl. документы
proxy_ssl_certificate Определяет сертификат, который следует использовать для трафика ssl. документы
proxy_ssl_certificate_key Определяет закрытый ключ для используемого сертификата. документы

Это было исправлено. Я просто заменил:

 proxy_pass http://osrm/;

с участием:

proxy_pass localhost:5000;