Dynamic proxy_pass

张立冰 zhang.libing at gmail.com
Wed Jul 30 05:58:20 MSD 2008


Here is some code maybe will help you...:)

            if ($host ~* (.+)\.(.*)\.91\.com(.*))
            {
                 set $dir_a $1;
                 set $dir_b $2;

                 rewrite ^(.*)$ /activity/$dir_b/$dir_a$1 last;
            }


            location /
            {
                proxy_pass      http://127.0.0.1:8080;
            }


On Wed, Jul 30, 2008 at 9:34 AM, W. Andrew Loe III <andrew at andrewloe.com>wrote:

> I have a relatively complex setup but I believe nginx has the ability
> to do everything I am looking for. I want to proxy requests for files
> to different servers using x-accel-redirect.
>
> A request cycle might look like this:
> client => interwebs => nginx1 => mongrel (which does some lifting and
> then replies back with x-accel-redirect and a url like
> /under_the_covers/10.10.1.2/file.jpg) => nginx1 (at this point the
> location directive catch the /under_the_covers and do what I want) =>
> some-other-webserver (10.10.1.2) => nginx1 => interwebs => client.
>
> In psuedo code I want something like:
>
> location /under_the_covers/(.*) {
>  internal;
>  proxy_pass http://$1;
> }
>
> I have tried a few methods but I cannot seem to get it correct.
>
> location /under_the_covers/ {
>  rewrite ^/under_the_covers/(.*)/(.*)$ $2;
>  proxy_pass http://$1;
> }
>
> I have no trouble if I manually set the host in the proxy pass. So the
> mongrel replies with x-accel-redirect = /under_the_covers/file.jpg and
> location looks like so:
>
> location /under_the_covers/(.*) {
>   proxy_pass http://10.10.1.2;
> }
>
> http://article.gmane.org/gmane.comp.web.nginx.english/6206/match=proxy_pass
>
> There is discussion there on using proxy_pass with variables but I
> cannot either construct the uri correctly or I can't get the hostname
> set from a regular expression.
>
> Thank you for your time,
> -- Andrew
>
>


-- 
The time you enjoy weasting is not weasted time!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx/attachments/20080730/0962a7fe/attachment.html>


More information about the nginx mailing list