Nnginx将地址映射到一个位置指令中的proxy_pass

我有多个节点的websockets可以通过匹配的UNIX套接字path的URL。 而不是重复的位置指令,我想有一个像Url列表将被用作套接字名称。 使用正则expression式不起作用,因为我需要套接字名称的path。

目前我正在使用这个位置:

location /application1/ { proxy_pass http://unix:/var/run/nodejs/application1; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } 

目标是有这样的东西:

 $list = [app1, app2, app3]; #list of possible names location /$list/ #match all names in the list { proxy_pass http://unix:/var/run/nodejs/$list_matched; #use matched name proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } 

基本上,列表中的每个URL都应redirect到具有相同名称的套接字。

在此先感谢您的帮助:)

 location ~* /(<regexp>)/ { proxy_pass http://unix:/var/run/nodejs/$1; #use matched name proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } 

你需要使用正则expression式。 像这样的东西应该可以工作,但是你必须自己制定正则expression式。 有很多教程和正则expression式实验网站 。

 location ~ (app1|app2|app3)$ {