2017-01-29 13 views
0

ここ数日から、私はNGINXの助けを借りてAPIバージョン管理を実装する方法を研究しています。nodejs + NGINXでREST APIのバージョン管理を実装する方法は?

アプリケーションレベルで実装することができましたが、これには2つの差分コントローラ、2つの差分ルート、2つの差分モデルなどが必要でした。私はそうしたくありません。

私はv1とv2のような2つの異なるプロジェクトが必要です。 NGINXを使用すると、URLにv1が含まれている場合はv1プロジェクトを指し、URLにv2が含まれている場合はv2プロジェクトにそのような何かを指します。

私はNGINX ALIASまたはROOTを使用していることを知っていますが、その方法はわかりません。

答えて

1

実際、私たちはリバースプロキシとしてnginxを設定する方法について話しています。 URLの内容に応じて、さまざまなプロジェクトのプロキシを実行します。あなたのケースでは

、以下を行う必要があります。

  1. 設定sail-projects at different ports。たとえば、次のようにAPI.V1ため

    sails.config.port - API.V2用> 3010

    sails.config.port - > 3020

  2. はnginxのとAPI-のために、たとえばnginxの構成(nginx.conftwo upstream(に追加同じサーバー上にあるプロジェクト)。

  3. nginx設定に追加する(サーバーブロック内にnginx.conftwo locations異なるapi用。


nginxの構成は次のようになります

upstream api_v1 { 
    server 127.0.0.1:3010; 
    keepalive 64; 
} 

upstream api_v2 { 
    server 127.0.0.1:3020; 
    keepalive 64; 
} 

server { 
    listen  80; 
    server_name example.com; 

    location /api/v1 { 
    proxy_pass       http://api_v1; 
    proxy_http_version     1.1; 
    proxy_set_header Connection  ""; 
    proxy_set_header Host    $host; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Real-IP   $remote_addr; 
    } 

    location /api/v2 { 
    proxy_pass       http://api_v2; 
    proxy_http_version     1.1; 
    proxy_set_header Connection  ""; 
    proxy_set_header Host    $host; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Real-IP   $remote_addr; 
    } 

} 
+0

私がしようとすると、あなたが知っています –

関連する問題