nginx:从proxy_pass删除命名位置上的路径

Llu*_*uís 3 ruby-on-rails nginx

我有这个Nginx配置来提供Rails应用程序:

  location ^~ /api/ {
    alias /srv/www/rails/public/;
    try_files $uri @unicorn;
  }

  location @unicorn {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://127.0.0.1:2007;
  }
Run Code Online (Sandbox Code Playgroud)

我想在将其传递到Rails应用之前从路径的开头删除/ api /,但是由于它是一个命名位置,因此我无法在proxy_pass指令的末尾添加“ /”,如何在传递请求之前删除/ api /到铁轨?

Ric*_*ith 6

使用:

location @unicorn {
    rewrite ^/api(.*)$ $1 break;
    ...
}
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参见此文档