
UNIX ソケット パスに一致する URL を通じて利用できるノード Web ソケットが複数あります。場所ディレクティブを複製する代わりに、ソケット名として使用される URL のリストのようなものを用意したいと思います。ソケット名のパスが必要なので、正規表現を使用しても機能しません。
現在、この場所を使用しています:
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 は同じ名前のソケットにリダイレクトされる必要があります。
ご協力いただければ幸いです:)
答え1
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";
}
答え2
正規表現を使用する必要があります。このようなものが機能するはずですが、正規表現は自分で考えなければなりません。チュートリアルはたくさんあり、正規表現実験サイト。
location ~ (app1|app2|app3)$ {