Redirect 使用nginx,如何将部分请求重定向到apache 可以找到一些关于重定向的解决方案。但我想做的是将部分请求重定向到另一台服务器,特别是,仅当请求url包含字符串服务时。例如:
> > > ..... ................................................................................................................................................................. 但blow仍将由ngnix提供服务,因为url中不包含任何服务Redirect 使用nginx,如何将部分请求重定向到apache 可以找到一些关于重定向的解决方案。但我想做的是将部分请求重定向到另一台服务器,特别是,仅当请求url包含字符串服务时。例如:,redirect,nginx,Redirect,Nginx,> > > ..... ................................................................................................................................................................. 但blow仍将由ngnix提供服务,因为url中不包含任何服务 如何做到这一点?如果我理解正确: location / { if ($re
如何做到这一点?如果我理解正确:
location / {
if ($request_uri ~* "^/service/.*") {
rewrite ^ http://localhost:8080$request_uri permanent;
}
}
p.S.未选中您需要将location regex匹配与proxy_pass一起使用,例如:
upstream apache {
server 127.0.0.1:8080;
}
# in your server block:
server{
# location matching is prioritized by accuracy and order of definition
location ~* ^/service {
proxy_pass http://apache;
proxy_redirect off;
}
}
^/服务将匹配以/service开头的任何请求,并将其转发给Apache
proxy_pass对用户是透明的,即它将请求转发给Apache并将输出返回给用户
有关位置匹配的更多信息,请签出user973254:您的解决方案不起作用,出现错误:301永久移动,有人告诉我需要代理权限,实际上,他说:只需将代理权限放在与您要代理的URI类型匹配的位置内。我不确定是否理解这一点,因此尝试如下:,获取了与以前相同的错误。location~*^/service/*${proxy\u passhttp://apache/$1;proxy_redirect off;}--------------------thx,经过上述少量修改后,一切正常。