
Tenho vários websockets de nós disponíveis por meio de um URL que corresponde aos caminhos do soquete UNIX. Em vez de duplicar a diretiva location, gostaria de ter algo como uma lista de URLs que serão usados como nome de soquete. Usar uma regex não funciona, pois preciso do caminho para o nome do soquete.
Atualmente estou usando este local:
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";
}
o objetivo é ter algo como:
$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";
}
Basicamente, cada URL em uma lista deve ser redirecionada para o soquete com o mesmo nome.
Agradecemos antecipadamente por qualquer ajuda :)
Responder1
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";
}
Responder2
Você precisa usar uma expressão regular. Algo assim deve funcionar, mas você mesmo terá que descobrir a expressão regular. Existem muitos tutoriais esites de experimentação de expressões regulares.
location ~ (app1|app2|app3)$ {