のリングとCompojureを使用してClojure Web APIを開発しています。 APIは、指定されたルートに基づいてHTTPおよびHTTPS要求を受け入れる必要があります。例えばClojureとRingを使用したHTTPSリクエスト
:
次アプリ-ルート考えてみましょう:
(defroutes app-routes
(POST "/route-one" {request :request} (processRequet request))
(POST "/route-two" {request :request} (processRequet request)))
私はルート-1ルート-2のみHTTPS要求を受け入れるための唯一のHTTPリクエストとを受け入れるようにしたいです。
これは可能ですか?
私は、次の設定で桟橋を実行してみました:
(jetty/run-jetty #'app {:join? false :ssl? true :ssl-port 8443 :keystore "./resources/keystore.jks" :key-password "12345678"})
HTTPS要求を受け入れるようにAPIを有効にし、それは同じルートにHTTP要求をブロックしませんでした。
また、私は運でHTTPプロトコルを無効にしてみました:
(jetty/run-jetty #'app {:port 5000 :join? false :ssl? true :ssl-port 8443 :keystore "./resources/keystore.jks" :key-password "12345678" :http? false})
私がオンライン読んだものから、リング HTTPS要求のための標準的な手順は、すべてのHTTPSリクエストを管理するために、リバースプロキシとしてnginxのを使用しています。
しかし、私はオンラインで実装が見つかりませんでした。
アイデア?
まだhttp://pedestal.io/を見ましたか?それはあなたの状況に合ったと思う複数の "サーバ"を扱うための設定を持っています。 –