
UNIX 소켓 경로와 일치하는 URL을 통해 사용할 수 있는 여러 노드 웹소켓이 있습니다. 위치 지시문을 복제하는 대신 소켓 이름으로 사용될 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)$ {