nginx rewrite help

Kevin Castiglione kevincastiglione at gmail.com
Thu Jun 18 18:44:55 MSD 2009


2009/6/18 Igor Sysoev <is at rambler-co.ru>

> On Thu, Jun 18, 2009 at 07:21:33AM -0700, Kevin Castiglione wrote:
>
> > 2009/6/18 Igor Sysoev <is at rambler-co.ru>
> >
> > > On Thu, Jun 18, 2009 at 06:38:54AM -0700, Kevin Castiglione wrote:
> > >
> > > > 2009/6/18 Igor Sysoev <is at rambler-co.ru>
> > > >
> > > > > On Wed, Jun 17, 2009 at 09:22:46PM -0700, Kevin Castiglione wrote:
> > > > >
> > > > > > hei guys
> > > > > > i want all urls to be re-written as follows:
> > > > > >
> > > > > > xx /host/xx
> > > > > >
> > > > > > xx is the url full path, it should be written as /domain/xx where
> > > host is
> > > > > > the hostname.
> > > > > >
> > > > > > for example www.ABCD.COM <http://www.abcd.com/>
> > > > > >
> > > > > > /test?1 ---> /ABCD.COM/test?1 <http://abcd.com/test?1>
> > > > > > is it possible to do this with nginx?
> > > > > > thank you!
> > > > >
> > > > > Should it be redirect or what ?
> > > > >
> > > >
> > > > i dont want it to be a permanent redirect. i just want the url to be
> > > > rewritten for application processing. i want different domains to be
> > > handled
> > > > by same web app an dmy webframe work supports only url-level
> application
> > > > mapping. that is why i need this rewrite.
> > > > thank you
> > >
> > > If you use proxing, then
> > >
> > > server {
> > >
> > >   location / {
> > >       proxy_pass  http://backend/$host$request_uri;
> > >    }
> > >
> > > }
> > >
> > im using fastcgi backend.
>
> Then
>
>   location / {
>       ...
>       fastcgi_param  SCRIPT_FILENAME
>                      /path/to/scripts/$host$fastcgi_script_name;
>       ...
>    }
>
igor:
does this mean the backend fastcgi processes have to be in the same machine?
i have my backends running on different machine like this



    upstream backend_flock{
        server app1.YYY.com:8491 fail_timeout=1s;
        server app2.YYY.com:8491 fail_timeout=1s;
    }
    server {
        server_name  .XXX.com;
        listen 80;
        access_log   logs/access.log;

        client_max_body_size 10m;
        location / {
            root   /home/app/flock;

            fastcgi_pass backend_flock;
            set  $addr  $remote_addr;

            if ($http_x_forwarded_for ~
"(?:^|,)\s*(\d+\.\d+\.\d+\.\d+)\s*$") {
               set  $addr  $1;
            }

            fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
            fastcgi_param PATH_INFO       $fastcgi_script_name;
            fastcgi_param QUERY_STRING    $query_string;
            fastcgi_param CONTENT_TYPE    $content_type;
            fastcgi_param CONTENT_LENGTH  $content_length;
            fastcgi_param REQUEST_METHOD  $request_method;
            fastcgi_param REMOTE_ADDR     $addr;
            fastcgi_param REMOTE_PORT     $remote_port;
            fastcgi_param SERVER_PROTOCOL $server_protocol;
            fastcgi_param SERVER_ADDR     $server_addr;
            fastcgi_param SERVER_PORT     $server_port;
            fastcgi_param SERVER_NAME     $server_name;
        }

    }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx/attachments/20090618/06c43218/attachment.html>


More information about the nginx mailing list