2

Ring (および Clojure サーバー側プログラミング全般) は初めてです。「開発モード」でうまく機能する Ring ベースのアプリがあります。つまり、リッスンでき、localhost:3000適切に応答します。このアプリのデプロイの一環として、アプリのベース URL を のようなものに変更したいと考えていますmyserver.com/analytics/v1。これにより、たとえば、以前に行ったリクエストが にlocalhost:3000/foo移動するようになりmyserver.com/analytics/v1/fooます。

ここで 2 つの密接に関連する質問があると思います: サーバーのルート URL ではない特定の URL でのみリッスンするように Ring/Jetty に指示するにはどうすればよいですか? myserver.com/analytics/v2また、最初のアプリのダウンタイムなしで別のアプリ (たとえば、) を追加できるように、これをどのように設定できますか? myserver.com/要求をリッスンし、必要に応じて他のアプリにルーティングする別の Ring アプリを作成する必要がありますか?

4

2 に答える 2

2

@Michiel Borkentnginx.confを自分のニーズに合わせて調整した方法は次のとおりです。

server {
    listen 80;
    server_name www.myserver.com;

    location /analytics/v1/ {
        proxy_pass http://localhost:3001/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
    }

    location /trac/ {
        proxy_pass http://localhost:3002/trac/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
    }
}

この状況では、ポート 3001 でサービスを提供するように Ring アプリを設定するだけです。ポート 3002 でサービスを提供する Trac を使用しています。別の Ring アプリなどを使用することもできます。これらのアプリケーションは両方とも、www.myserver.com (ポート 80) から、異なるパスの下でアクセスできます。

于 2013-04-03T14:13:57.747 に答える