Nginx Proxy Manager (NPM) 是一个基于Nginx的图形化管理工具,虽然它本身没有直接的API版本控制功能,但我们可以通过配置实现API版本控制。以下是几种实现方法:
在NPM中创建代理主机
添加自定义Nginx配置:
location /api/v1 {
proxy_pass http://backend-service/v1;
# 其他v1特定配置
}
location /api/v2 {
proxy_pass http://backend-service/v2;
# 其他v2特定配置
}
创建多个代理主机:
在DNS中设置相应的子域名记录
location /api {
if ($http_accept ~* "version=1.0") {
proxy_pass http://backend-service/v1;
}
if ($http_accept ~* "version=2.0") {
proxy_pass http://backend-service/v2;
}
# 默认版本
proxy_pass http://backend-service/v2;
}
location /api {
if ($arg_version = "1") {
proxy_pass http://backend-service/v1;
}
if ($arg_version = "2") {
proxy_pass http://backend-service/v2;
}
# 默认版本
proxy_pass http://backend-service/v2;
}
路径版本控制是最常用和推荐的方式,因为它:
考虑设置默认版本,当未指定版本时自动路由到最新稳定版
使用NPM的自定义位置功能可以更灵活地管理不同版本的API端点
考虑添加版本弃用通知:
add_header X-API-Deprecated "true" if ($request_uri ~ "^/api/v1");
add_header X-API-Deprecation-Date "2023-12-31";
add_header X-API-Sunset "Sunset: Wed, 31 Dec 2023 23:59:59 GMT";
通过以上方法,您可以灵活地在Nginx Proxy Manager中实现API版本控制,而无需直接编辑Nginx配置文件。