Proxying/redirecting after request has been rewritten

Hi everyone.

I’m trying to get Nginx to run some Regex’s on requests and send them to
another server block, returning the response headers from the second
server block. At the moment I get a 302 response status, how do I get
the headers from the second server block?

So as an example, I would like a request like:
http://nginxrouting.local/some/stuff/that/needs/to/be/removed/itemid=1234/more/stuff/topicid=1234
to be sent to
http://nginxrouting_destination.local/itemid=1234topicid=1234 returning
the headers from the new location

The server blocks look like this:

server {
server_name nginxrouting.local;
root /var/nginxrouting/public;

location / {

if ($request_uri ~* ".*(itemid=[0-9]*){1}.*") {
  set $itemid $1;
}
if ($request_uri ~* ".*(topicid=[0-9]*){1}.*") {
  set $topicid $1;
}
if ($request_uri ~* ".*(&type=RESOURCES){1}.*") {
  set $resources $1;
}

rewrite ^

http://nginxrouting_destination.local/$itemid$topicid$resources?
redirect;
add_header itemid $itemid;

}

}

server {
server_name nginxrouting_destination.local;
root var/govuk/nginxrouting/public_destination;
location / {
add_header working yes;
return 200;
}
}

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,229458,229458#msg-229458

Hello!

On Wed, Aug 08, 2012 at 11:04:25AM -0400, i0n wrote:

http://nginxrouting_destination.local/itemid=1234topicid=1234 returning
the headers from the new location

Use proxy_pass. See http://nginx.org/r/proxy_pass for details.

Maxm Dounin

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs