OSRM на Nginx через SSL
Я настроил OSRM (Маршрутизатор с открытым исходным кодом) с помощью nginx. Работает как положено. Но проблема в том, что я не могу заставить его работать над ssl. Я установил порты 443, сайт через nginx работает с https, все нормально, только сервис OSRM или как я его называю, который работает на машине с Ubuntu, он не работает. Страница, когда я открываю доступ / местоположение, говорит:
ошибка 400, неверный запрос
Простой HTTP-запрос был отправлен на порт HTTPS
Вот мой файл 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;
}
}
2 ответа
Это было исправлено. Я только заменил:
proxy_pass http://osrm/;
с:
proxy_pass localhost:5000;
С вашей текущей конфигурацией часть 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
Определяет закрытый ключ для используемого сертификата. документы