Rewriting/proxy_pass example

Igor Sysoev igor at sysoev.ru
Wed Dec 9 10:17:46 MSK 2009


On Wed, Dec 09, 2009 at 10:08:59AM +0300, Igor Sysoev wrote:

> On Tue, Dec 08, 2009 at 02:24:13PM -0600, Todd Gruben wrote:
> 
> > my goal is the following
> > 
> > i want requests that come in this format...
> > 
> > http://d1.example.com
> > http://d2.example.com
> > .
> > .
> > http://dn.example.com
> > 
> > to proxy through to my web server as
> > 
> > http://hardcode.example.com/?site=d1
> > http://hardcode.example.com/?site=d2
> > .
> > .
> > http://hardcode.example.com/?site=dn
> > 
> > I would also like to pass the uri as is and just append the site=d1 to the
> > request. for example
> > 
> > http://d1.example.com/processRequest?arg=1
> > 
> > to become
> > http://hardcode.example.com/processRequest?arg=1&site=d1
> > 
> > 
> > Can the proxy_pass/rewrite combination achieve this pattern?
> > 
> > 
> > I believe that hardcode.example.com doesn't have to be the same domain as
> > the src, its the moving of the subdomain to the argument parameter which i
> > desire.
> 
> 0.8.29:
> 
> # you should define the upstream to not resolve the host in runtime
> upstream hardcode.example.com {
>     server hardcode.example.com;
> }
> 
> server {
>     server_name  ~^(?<site>d\d+)\.example\.com$;
> 
>     location {
>         proxy_pass  http://hardcode.example.com$request_uri?site=$site;

-         proxy_pass  http://hardcode.example.com$request_uri?site=$site;
+         proxy_pass  http://hardcode.example.com$uri?site=$site&$args;

>     }
> }
> 
> more early:
> 
> upstream hardcode.example.com {
>     server hardcode.example.com;
> }
> 
> server {
>     server_name  ~^(d\d+)\.example\.com$;
> 
>     location {
>         proxy_pass  http://hardcode.example.com$request_uri?site=$1;

-         proxy_pass  http://hardcode.example.com$request_uri?site=$1;
+         proxy_pass  http://hardcode.example.com$uri?site=$1&$args;

>     }
> }


-- 
Igor Sysoev
http://sysoev.ru/en/



More information about the nginx mailing list