nginx location / sub / $ VAR / to proxy_pass / sub / $ VAR /

时间:2016-09-09 10:18:50

标签: variables nginx proxy location

我已经尝试了几件事来实现这一目标。甚至为每个端口/客户端编写一个新的服务器块。

我正在忙着推出一个用户可以租用了几个小时的应用程序,因为每个实例都是在它自己的端口上启动的,我想给用户一个网址,将它们转发到他们自己的应用程序实例例如,在端口号上。

我现在拥有的,仅用于测试

location /go/ {
    proxy_pass http://127.0.0.1:5000/;
    proxy_redirect off;
}

location /go/5001/ {
    proxy_pass http://127.0.0.1:5001/;
    proxy_redirect off;
}


location ^~ /status/ {
    proxy_pass http://127.0.0.1:5000/status;
    proxy_redirect off;
}

我想要实现的是,传递的var(例如5006)被传递给proxy_pass端口。此外,对于每个实例,我希望/ status /看到状态(并且我应该使用end /?..我尝试没有它们,但有时它加载路径包括结尾/,有时它甚至替换url到127.0.0.1:port,有时加载没有css / images / js。

location /go/$VAR/ {
    proxy_pass http://127.0.0.1:$VAR/;
    proxy_redirect off;
}


location /go/$VAR/status/ {
    proxy_pass http://127.0.0.1:$VAR/status;
    proxy_redirect off;
}

非常感谢提前!

1 个答案:

答案 0 :(得分:0)

如果您需要从URI捕获端口并在RewriteEngine On ### START WWW & HTTPS # ensure www. RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # ensure https RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] ### END WWW & HTTPS 语句中使用它,则可以使用带有命名捕获的正则表达式位置。

例如(我没有测试过这个):

proxy_pass