没有文件path的nginx urlredirect

我试图设置nginx让基于Hadoop的集群的名称节点能够根据url上的文件扩展名有效地redirect到Hadoop周围的不同用户界面。 为了简单起见,这样说

firstnode.com对应于我的集群的主节点
stormnode.com对应于运行风暴的节点,并且可以通过端口8080访问UI。

那么,理想的redirect将是http://firstnode.com/storm – > http://stormnode.com:8080 。

我已经尝试编辑我的Nginxconfiguration文件,以便我最终得到像下面的每一个:

server{ listen 80; server_name firstnode.com; location /storm{ proxy_pass secondnode.com:8080; } } 

以及

 server{ listen 80; server_name firstnode.com; location /storm{ return 301 $scheme://secondnode.com:8080$request_uri; } } 

以及使用正则expression式对后者进行的等同声明。 不幸的是,我得到的最接近的是将firstnode.com/stormredirect到secondnode.com:8080/storm。 我将不胜感激关于如何通过nginx的configuration文件重写URL而不传递文件扩展名/path(又名/风暴)到新的URL

尝试这个:

 server { listen 80; server_name firstnode.com; location ~ ^/storm(?<section>.*)$ { return 301 $scheme://secondnode.com:8080$section; } } 

在这里,我们将/storm后面的部分捕获到sectionvariables中,然后在return语句中使用该variables来形成所需的path。