如何转发以nginx中的特定位置开头的所有路径?

问题描述 投票:0回答:1

我想将所有以/ api /(/ api / * ??)开头的路径转发到端口1000,但实际配置要么只转发包含“ / api /”的路径,然后转发(/ api / login不转发)

location /api/ {
                    proxy_pass http://localhost:1000/;
            }

或者它根本不起作用

location ~ ^/api/(.*)$ {
                    proxy_pass http://localhost:1000/;
            }

。服务器被配置为休假:

server {
            listen       80;
            keepalive_timeout    70;
            server_name  server_name;

            location / {
                    root /var/www/html;
                    index index.html;
            }
            location /api/ {
                    proxy_pass http://localhost:1000/;
            }
            }

我将不胜感激,谢谢!

regex api nginx proxy location
1个回答
0
投票

请注意:

location /api/ {
    proxy_pass http://localhost:1000/;
}

如果有请求/api/foo,则您的API服务器将看到/foo

如果,另一方面(请注意proxy_pass中没有斜杠),请使用:

location /api/ {
    proxy_pass http://localhost:1000;
}

然后针对相同的请求,您的API服务器将按原样接收请求:/api/foo

因此请确保使用正确的方法(斜杠/不斜杠),这取决于您的API服务器如何处理URL(如果将其配置为处理/api/foo URL,则不应在proxy_pass中使用尾部斜杠。] >

© www.soinside.com 2019 - 2024. All rights reserved.