2019年11月29日 星期五

nginx 設定提供不同版本api使用

目前提供給外部使用的API Server均透過nginx
以 location /api proxy到 nodejs 的服務上
為了要提供全新架構的api 服務
將以v1,v2區分新舊版本server
以下是nginxg上設定範例

location ^~ /api {
        rewrite ^/api(/.*)$ $1 break;
        #若要改預設主機 改這裡即可
        proxy_pass http://api_server_v1;
}
location ^~ /api/v1 {
        rewrite ^/api/v1(/.*)$ $1 break;
        proxy_pass http://api_server_v1;
}

location ^~ /api/v2 {
        rewrite ^/api/v2(/.*)$ $1 break;
        proxy_pass http://api_server_v2;
}
upstream api_server_v1 {
        server 127.0.0.1:12345;
}
upstream api_server_v2 {
        server 127.0.0.1:3138;
}

設定的結果
http://localhost/api/xxx 會導到v1主機
http://localhost/api/v1/xxx 會導到v1主機
http://localhost/api/v2/xxx 會導到v2主機

沒有留言: