Nginx proxy 转发不发送对应 Location path 的方法

DebugMi 发布于 2021-08-20阅读:78

我最近有个 path 需要转发到图床项目,nginx 配置是这样的:

server{
  listen 80;
  server_name cdn.debugmi.com;

  location /static {
    proxy_pass http://127.0.0.1:3000;
  }
}

问题来了,/static 转发到 http://127.0.0.1:3000 时,会把 /static 也发送过去,而我只想转发除 /static 之后的路径,需要 rewrite 吗?不需要,可改成:

server{
  listen 80;
  server_name cdn.debugmi.com;

  location /static/ {
    proxy_pass http://127.0.0.1:3000/;
  }
}

location 后和 proxy_pass 后各加一个 /,可使前端的 /static/ 和 后端的 / 对应起来

参考:https://serverfault.com/questions/379675/nginx-reverse-proxy-url-rewrite

0