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

Regex 如何转发nginx中以特定位置开始的所有路径?,regex,api,nginx,proxy,location,Regex,Api,Nginx,Proxy,Location,我想将所有以/api/(/api/*??)开头的路径转发到端口1000,但实际配置要么只转发包含“/api/”的路径,要么转发后面的路径(/api/login不转发) 或者根本不起作用 location ~ ^/api/(.*)$ { proxy_pass http://localhost:1000/; } 。服务器被配置为休耕: server { listen 80;

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

或者根本不起作用

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/;
            }
            }
如果有任何帮助,我将不胜感激,谢谢

注意:

location /api/ {
    proxy_pass http://localhost:1000/;
}
如果有请求
/api/foo
,那么您的api服务器将看到
/foo

另一方面,如果(注意,
proxy\u pass
中没有尾随斜杠),则使用:

然后,对于相同的请求,API服务器将“按原样”接收请求:
/API/foo


因此,请确保使用正确的方法(斜杠/无斜杠),这取决于API服务器处理URL的方式(如果配置为处理
/api/foo
URL,则不应在
代理过程中使用尾随斜杠

如果此位置块未处理
/api/login
,则必须有另一个优先的位置或重写语句。我们需要更多地了解您的配置和相关信息。)访问日志和错误日志中的条目。感谢您的回复!这是否意味着我必须映射nging和te中的所有api路径?没有方法自动重定向以/api/?no开头的所有路径。问题中的位置将匹配以
/api/
开头的任何URI,除非存在其他位置或重写状态您的配置中的其他位置覆盖了它。好的,我现在添加了整个配置,可能错误受第一个位置“/”的影响。该配置导致错误。您是否查看了错误日志或使用
nginx-T
对其进行了测试?
location /api/ {
    proxy_pass http://localhost:1000/;
}
location /api/ {
    proxy_pass http://localhost:1000;
}