Ubuntu
基於 SSL 的 Nginx 上的 OSRM
我已經用 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
定義所使用證書的私鑰。文件