Nginx
Nnginx 在一個位置指令中將 url 映射到 proxy_pass
我有多個節點 websocket,可通過與 UNIX 套接字路徑匹配的 url 獲得。我不想複製 location 指令,而是希望有一個類似 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 都應該重定向到同名的套接字。
在此先感謝您的幫助:)
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"; }
您需要使用正則表達式。像這樣的東西應該可以工作,但你必須自己制定正則表達式。有很多教程和正則表達式實驗站點。
location ~ (app1|app2|app3)$ {