如何代理和重写一个 URL like /app/(wildcard)/(实际上是重写的路径)
How to proxy and rewrite a URL like /app/(wildcard)/(actually path for rewriting)
我想重写和代理所有 URL,例如...
http://foo.com/app/groupA/index.html
http://foo.com/app/groupB/index.html
到
http://foo.com:8080/index.html
注意 groupA 和 groupB URL 如何重写到同一个地方。
我已经尝试了很多东西,我认为这应该最有可能工作,因为它匹配第三次出现 /
之后的所有内容。
location /app {
rewrite (?:.*?\/){3}(.*) / break;
index index.html index.htm;
proxy_pass http://localhost:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Ssl on;
proxy_buffering off; # buffering would break CouchDB's _changes feed
proxy_read_timeout 600s;
proxy_send_timeout 600s;
proxy_connect_timeout 75s;
}
但是在端口 8080 上我没有看到其他请求进来。请注意,我在写入时确实看到了请求...
location ^~ /app {
rewrite /app/(.*) / break;
index index.html index.htm;
proxy_pass http://localhost:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Ssl on;
proxy_buffering off; # buffering would break CouchDB's _changes feed
proxy_read_timeout 600s;
proxy_send_timeout 600s;
proxy_connect_timeout 75s;
}
请求通过端口 8080 进入...
/groupA/index.html
/groupB/index.html
我需要弄清楚如何摆脱 URL 的 /groupA/ 和 /groupB/ 部分。请注意,我实际上并不知道组所在的那些斜杠之间的字符串是什么。据我所知,它可能是 /funnybunny/ :P。
如果正则表达式包含大括号字符{}
,表达式应该用引号引起来。
尝试:
rewrite "(?:.*?\/){3}(.*)" / break;
我想重写和代理所有 URL,例如...
http://foo.com/app/groupA/index.html
http://foo.com/app/groupB/index.html
到
http://foo.com:8080/index.html
注意 groupA 和 groupB URL 如何重写到同一个地方。
我已经尝试了很多东西,我认为这应该最有可能工作,因为它匹配第三次出现 /
之后的所有内容。
location /app {
rewrite (?:.*?\/){3}(.*) / break;
index index.html index.htm;
proxy_pass http://localhost:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Ssl on;
proxy_buffering off; # buffering would break CouchDB's _changes feed
proxy_read_timeout 600s;
proxy_send_timeout 600s;
proxy_connect_timeout 75s;
}
但是在端口 8080 上我没有看到其他请求进来。请注意,我在写入时确实看到了请求...
location ^~ /app {
rewrite /app/(.*) / break;
index index.html index.htm;
proxy_pass http://localhost:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Ssl on;
proxy_buffering off; # buffering would break CouchDB's _changes feed
proxy_read_timeout 600s;
proxy_send_timeout 600s;
proxy_connect_timeout 75s;
}
请求通过端口 8080 进入...
/groupA/index.html
/groupB/index.html
我需要弄清楚如何摆脱 URL 的 /groupA/ 和 /groupB/ 部分。请注意,我实际上并不知道组所在的那些斜杠之间的字符串是什么。据我所知,它可能是 /funnybunny/ :P。
如果正则表达式包含大括号字符{}
,表达式应该用引号引起来。
尝试:
rewrite "(?:.*?\/){3}(.*)" / break;