rewrite rule for subrequest

peterjanovsky nginx-forum at nginx.us
Wed May 12 02:04:24 MSD 2010


when implementing a rewrite rule for a subrequest which is the proper way to tackle the issue

1.  write the rewrite rule in the main location (location /), the location where the subrequests are generated
2.  write the rewrite rule in the subrequest location

i am using two subrequests to concatenate the document's contents residing at the requested URL

example

main request

GET /path/to/files/document_1.html

i generate two subrequests allowing me to chunk the response to the client as the document's contents are large

subrequest1

echo_subrequest_async GET /sub1 -q $request_filename;
- where request_filename = /path/to/files/document_1.html

subrequest2

echo_subrequest_async GET /sub2 -q $request_filename;
- where
     request_filename = /path/to/files/document_1.html before rewrite rule
         and
     request_filename = /path/to/files/document_2.html after rewrite rule


here is the rewrite rule i'm using

rewrite ^(_.*)$ $1_2.html break;
- so subrequest1 would go to /path/to/files/document_1/html and subrequest2 would go to /path/to/files/document_2.html

i've attempted putting the rewrite rule in the default location and also the subrequest2 location.  on my backend i am able to trace the request is coming from the subrequest2 location but the URL passed through is the original URL and not my modified URL.

i know i must be missing something in the documentation, but i'm not sure what it may be.  how do you use a modified version of the URL from subrequest1?

peter

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




More information about the nginx mailing list