我已经尝试了几件事来实现这一目标。甚至为每个端口/客户端编写一个新的服务器块。
我正在忙着推出一个用户可以租用了几个小时的应用程序,因为每个实例都是在它自己的端口上启动的,我想给用户一个网址,将它们转发到他们自己的应用程序实例例如,在端口号上。
我现在拥有的,仅用于测试
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;
}
非常感谢提前!
答案 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