從過去的幾天開始,我正在如何在NGINX的幫助下實現API版本控制。如何使用nodejs + NGINX實現REST API版本控制?
在應用層面上,我爲能夠實現但這需要2 DIFF控制器,2 DIFF路線,2差異模型等。我不想這樣做。
我要像V1和V2兩個不同的項目。使用NGINX,如果我的URL包含v1,那麼它指向v1項目,如果URL包含v2,那麼它將指向v2項目類似的東西。
我知道使用NGINX別名或ROOT,我們能夠做到這一點,但我不知道怎麼樣?
從過去的幾天開始,我正在如何在NGINX的幫助下實現API版本控制。如何使用nodejs + NGINX實現REST API版本控制?
在應用層面上,我爲能夠實現但這需要2 DIFF控制器,2 DIFF路線,2差異模型等。我不想這樣做。
我要像V1和V2兩個不同的項目。使用NGINX,如果我的URL包含v1,那麼它指向v1項目,如果URL包含v2,那麼它將指向v2項目類似的東西。
我知道使用NGINX別名或ROOT,我們能夠做到這一點,但我不知道怎麼樣?
事實上,我們正在談論如何配置Nginx作爲反向代理。並根據URL的內容爲不同的項目執行代理。
在你的情況,你需要:
配置sail-projects at different ports。例如:
爲API.V1:sails.config.port
- > 3010
爲API.V2:sails.config.port
- > 3020
添加到nginx的配置(nginx.conf
)two upstream(例如用於nginx的和API-項目位於同一臺服務器上)。
添加到nginx配置(nginx.conf
內部服務器塊)two 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;
}
}
我會努力,然後讓你知道 –