nginx - 位置指令正则表达式捕获和使用

nginx - 位置指令正则表达式捕获和使用

我有一个非常简单的需求,但发现在 nginx 中很难实现

如果您看到位置指令,我会看到很多冗余。如何使用正则表达式和匹配。

server {
    listen 80;

    location /api/a-service/ {
        proxy_pass http://a-service:8080;
    }
    location /api/b-service/ {
        proxy_pass http://b-service:8080;
    }
    location /api/b-service/ {
        proxy_pass http://c-service:8080;
    }

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
}

类似这样的 - 但它不起作用

server {
    listen 80;

    location ~ /api/([a-z\-]+)/ {
        proxy_pass http://$1:8080;
    }


    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
}

相关内容