【问题标题】:Configuration Nginx for Microservices Api-Gateway为微服务 API 网关配置 Nginx
【发布时间】:2021-01-01 01:36:40
【问题描述】:
我想用 Nginx 将请求代理到当前的网络接口主机名,例如:
url /catalog/categories/... 代理到主机名 catalog:8080 与 url /categories/...
url /vitrine/products/... 代理到主机名 vitrine:8080 与 url /products/...
有什么想法吗?
【问题讨论】:
标签:
nginx
microservices
gateway
api-gateway
【解决方案1】:
配置应如下所示:
http {
...
server {
listen 80;
server_name yourdomain;
set $mycatalog catalog:8080;
set $myvitrine vitrine:8080;
}
location ~ ^/catalog/categories/(.*)$ {
proxy_set_header Host $host:$server_port;
proxy_pass http://$mycatalog/categories/$1$is_args$args;
}
location ~ ^/vitrine/products/(.*)$ {
proxy_set_header Host $host:$server_port;
proxy_pass http://$myvitrine/products/$1$is_args$args;
}
}