Ubuntu

基於 SSL 的 Nginx 上的 OSRM

  • September 19, 2016

我已經用 nginx 設置了 OSRM(開源路由機)。它按預期工作。但是,問題是我不能讓它在 ssl 上工作。我已經設置了埠 443,通過 nginx 的站點使用 https,一切都很好,只是 OSRM 服務或我如何呼叫它,它在 ubuntu 機器上執行,它不起作用。我訪問 /location 時的頁面顯示:

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

它是固定的。我剛換了:

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 發送上游流量。docs

proxy_ssl_certificate定義應該用於 ssl 流量的證書。docs

proxy_ssl_certificate_key定義所使用證書的私鑰。文件

引用自:https://serverfault.com/questions/800707