“的不同行为”;地点“;及;代理“U通行证”;关于nginx x-accel-redirect

“的不同行为”;地点“;及;代理“U通行证”;关于nginx x-accel-redirect,nginx,x-accel-redirect,Nginx,X Accel Redirect,我的nginx配置如下: location ^~ /mount_points/mount_point1 { internal; alias /repos/mount_point_one; } location ^~ /to_proxy { internal; proxy_pass http://myproxy:5000; } 当我请求“”时,我得到了预期的“/repos/mount\u point\u one/myfile.zip” 当请求“”时,我得到“” 在第一种情况下,

我的nginx配置如下:

location ^~ /mount_points/mount_point1 {
  internal;
  alias /repos/mount_point_one;
}

location ^~ /to_proxy {
  internal;
  proxy_pass http://myproxy:5000;
}
当我请求“”时,我得到了预期的“/repos/mount\u point\u one/myfile.zip”

当请求“”时,我得到“”

在第一种情况下,删除了“/mount\u points/mount\u point1”部分,而在第二种情况下,“/to\u proxy”部分仍然存在,我必须在上游服务器中伪造一个“/to\u proxy”地址才能发现这一点

我错过什么了吗?如果我必须重写url,我如何才能将“/to_proxy”部分问题删除到上游服务器


谢谢。

proxy\u-pass指令可以执行别名功能,但前提是提供了可选的URI

location ^~ /to_proxy/ {
    internal;
    proxy_pass http://myproxy:5000/;
}
为了使别名映射正常工作,还将在
位置
参数中添加一个尾随的
/

有关详细信息,请参阅

如果
位置
参数后面的
/
导致问题,可以使用
重写。。。改为中断

location ^~ /to_proxy {
    internal;
    rewrite ^/to_proxy(?:/(.*))?$ /$1 break;
    proxy_pass http://myproxy:5000;
}