【发布时间】:2021-06-19 06:05:55
【问题描述】:
(免责声明:我在这里看到过很多版本的这个问题,但似乎没有一个能真正回答我的问题。)
我想使用 NGINX 作为 API 网关,将请求路由到 docker-compose 中的微服务 API。
对于我的示例应用,我有两个微服务 API(A 和 B)。任何以/a 开头的请求端点都应该转到API-A,任何以/b 开头的请求端点都应该转到API-B。
我遇到的一些问题是:
- 我希望像
/a/foo/bar这样的路径匹配 API-A 但不匹配/ab/foo - 无论路径是否以
/结尾(aka/a/foo和/a/foo/都有效),我都希望路由正常工作
我的docker-compose 文件如下所示:
version: "3.8"
services:
gateway:
build:
context: ./api-gw
ports:
- 8000:80
apia:
build:
context: ./api-a
ports:
- 8000
apib:
build:
context: ./api-b
ports:
- 8000
我的示例 NGINX 配置文件如下所示:
server {
listen 80;
server_name localhost;
location ^~ /a {
proxy_pass http://apia:8000/;
}
location ^~ /b {
proxy_pass http://apib:8000/;
}
}
如何设置我的 NGINX 配置以正确路由我的请求?
感谢您的帮助!
【问题讨论】:
标签: docker rest nginx docker-compose reverse-proxy