使用 API 网关和身份验证服务配置 nginx
Configuring nginx with an API Gateway & authentication service
我目前正在我的 nginx 配置中实现一些逻辑,以便我可以处理身份验证和令牌验证。我的逻辑是:
第一种情况:
- 用户尝试访问 /login 或 /register 页面。
- Nginx 应该将这些调用直接重定向到 auth 服务。
- Auth 创建一个令牌并将其发回给用户。
- 结束。
第二种情况:
- 用户尝试使用令牌访问 /someservice/somepage 页面。
- Nginx 应该将此调用重定向到 API 网关。
- API 网关验证用户是否正在尝试访问受保护的资源,如果是,则验证令牌并发回 2xx 响应。
- Nginx 获得 2xx 响应并将用户重定向到 real /someservice
- Someservice 生成响应并将其发回给用户。
- 结束。
首先,这个逻辑你觉得合适吗?我应该考虑其他选项身份验证选项吗?
最重要的是,我如何使用 nginx 实现这个逻辑?
我的 nginx 配置如下所示:
http {
upstream gateway {
server ...;
}
upstream auth {
server ...;
}
upstream someservice {
server ...;
}
server {
location ^~ /api {
proxy_pass http://gateway;
# redirect ???
}
location /auth {
proxy_pass http://auth;
}
location /someservice {
proxy_pass http://someservice;
}
}
}
谢谢!
所以最后我保留了我的原始配置并进行了一些小的调整,比如伟大的 auth_request
nginx 指令,并且我按保护级别对功能进行分组,如果用户尝试访问受保护的资源,那么 nginx 将验证首先通过另一个服务请求。
我目前正在我的 nginx 配置中实现一些逻辑,以便我可以处理身份验证和令牌验证。我的逻辑是:
第一种情况:
- 用户尝试访问 /login 或 /register 页面。
- Nginx 应该将这些调用直接重定向到 auth 服务。
- Auth 创建一个令牌并将其发回给用户。
- 结束。
第二种情况:
- 用户尝试使用令牌访问 /someservice/somepage 页面。
- Nginx 应该将此调用重定向到 API 网关。
- API 网关验证用户是否正在尝试访问受保护的资源,如果是,则验证令牌并发回 2xx 响应。
- Nginx 获得 2xx 响应并将用户重定向到 real /someservice
- Someservice 生成响应并将其发回给用户。
- 结束。
首先,这个逻辑你觉得合适吗?我应该考虑其他选项身份验证选项吗? 最重要的是,我如何使用 nginx 实现这个逻辑?
我的 nginx 配置如下所示:
http {
upstream gateway {
server ...;
}
upstream auth {
server ...;
}
upstream someservice {
server ...;
}
server {
location ^~ /api {
proxy_pass http://gateway;
# redirect ???
}
location /auth {
proxy_pass http://auth;
}
location /someservice {
proxy_pass http://someservice;
}
}
}
谢谢!
所以最后我保留了我的原始配置并进行了一些小的调整,比如伟大的 auth_request
nginx 指令,并且我按保护级别对功能进行分组,如果用户尝试访问受保护的资源,那么 nginx 将验证首先通过另一个服务请求。