Map thousands of urls
Igor Sysoev
is at rambler-co.ru
Thu Jun 14 20:40:34 MSD 2007
On Thu, Jun 14, 2007 at 06:17:35PM +0200, Janko Hauser wrote:
>
> Am 14.06.2007 um 17:32 schrieb Igor Sysoev:
>
> >On Thu, Jun 14, 2007 at 12:29:25PM +0200, Janko Hauser wrote:
> >
> >>Hello, we currently use a homegrown apache module, which maps urls to
> >>new domains and urls. For this we use a mysql-lookup. There are O
> >>(10000) entries in this table. Now we want to replace Apache with
> >>nginx (which is currently used as a load balancing proxy to a big
> >>zope cluster f?r 400+ Sites).
> >>
> >>What would be the best way to achieve the same effect with nginx? We
> >>can live with a solution, where the mysql-table is exported once a
> >>night, a new nginx include is written and nginx is reloaded. I think
> >>it would be bad to port the apache module to nginx, as a mysql-lookup
> >>for each request reduces the benefits of nginx.
> >>
> >>The lookup can be exact, so we do not need thousands of rewrites via
> >>regex.
> >
> >Could you show example of mappings ?
> >nginx can do lookups via "map" directive.
>
> Yes I suspected already that "map" could be a solution, but I do not
> understand what the variables "0;" etc mean.
They are simple strings.
> The mapping looks like this,
>
> >MAP: /0x0ac80f2b_0x008c8a6e -> http://medien-kunst-
> >industrie.zzz.xxx.de/fachgruppen
> >MAP: /0x0ac80f2b_0x015a8bd2 -> http://handel.yyy.xxx.de/
> >pressemitteilungen/presse_2004
> >MAP: /m -> http://mmm.xxx.de/
> >MAP: /berlin-brandenburg/lbz -> http://bb.xxx.de/
So it should be redirects returned to user ?
map $uri $new {
default http://some.default.de/;
/berlin-brandenburg/lbz http://bb.xxx.de/;
/m http://mmm.xxx.de/;
...
}
server {
server_name www.xxx.de;
rewrite ^ $new redirect;
}
> Currently they only arrive at one host "www.xxx.de" but it would be
> cool, if also different hosts could be covered, but that's not a
> stopper.
You may set up several maps or use
set $map $host$uri;
and define "map $map $new { ... }".
--
Igor Sysoev
http://sysoev.ru/en/
More information about the nginx
mailing list