Rewrite URI and pass request to the upstream server
Maxim Dounin
mdounin at mdounin.ru
Tue Mar 17 20:38:12 MSK 2009
Hello!
On Tue, Mar 17, 2009 at 12:09:29PM -0500, Ruben. D. wrote:
> Hi friends, I need rewrite and old URI and pass the request to the upstream
> server, here is my current config file:
> http://pastie.org/418871
>
> If for example I have http://pe.domain.com/xx-xxx-689 I need redirect to
> http://cl.domain.com/xx-xxx-689 and let the upstream process the new
> request, with my current config I've obtained the rewrite of the URI but
> nginx return me a 404 error, therefore it is not transfering the request to
> the upstream server because the 404 error page are different between nginx
> and my application.
According to your config, [new] request to cl.domain.com/xx-xxx-689
will end up in "location ~* [a-zA-Z]+(\-)+689$", which has no proxy_pass
rules. You should either duplicate proxy_pass rules within this location, or
(better, faster, more scalable) separate pe.* and cl.* servers:
server {
listen 80;
server_name pe.domain.com;
location ~* [a-zA-Z]+(\-)+689$ {
rewrite ^ http://cl.domain.com$request_uri?;
}
...
}
server {
listen 80;
server_name www.domain.com domain.com cl.domain.com;
...
}
For identical config chunks within this servers you may want to
use include.
Maxim Dounin
More information about the nginx
mailing list