我需要在 Nginx 中的代理路径上进行重定向

I need to do a redirect on a proxied path in Nginx

我正在使用一个结构奇怪的应用程序,我需要代理/并将其重定向到一个子目录(除非有人能想出更好的解决方案)。这是应用程序使用的路径布局:

var securePaths = [
    "/someaction",
    "/anotheraction",
    "/athirdaction",
    "/client/interfaceishere/index.html" //path to client interface
];

如您所见,客户端与应用程序交互的位置有两层,因此我需要重定向到那里。我无法在那里代理该应用程序,因为它需要访问顶级路径,如“/someaction”。我已将 nginx 配置为代理应用程序,如下所示:

upstream socket_nodes {
  ip_hash;
  server 127.0.0.1:8080;
}

server {
  server_name myapp.example.com;
  listen 80;


  location / {
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_pass http://127.0.0.1:8080;
  }
}

让用户使用“/client/interfaceishere/index.html”的最佳方法是什么?

这个应用程序的以前的用户通过 iframing 解决了这个问题,这对我来说不是一个选项。

然后你需要把它分开,位置块内的路径而不是用 / 传递所有内容。你真的首先需要思考并写下每条路径需要去的地方,然后使用 'map' 重定向 or/and 位置块来处理事情。您可以使用位置块来分别处理每个 uri。