ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[2]: вопрос по sever_name



Решил вот таким способом, дешево и сердито.


        server {
                listen ****:80 default backlog=10000 sndbuf=128k;
                server_name ~\d.data\d+\.*$ data\d+.*;
                access_log   /var/log/nginx.log static;



                location /albums/ {
                        rewrite   
^/albums/([a-z]+)/[0]*([0-9]*)([0-9])-([0-9]*)-([0-9]+)-(.*)\.([a-z]*)$  
/cache/$1_cache/$6/$5-$6.$7;
                        rewrite   
^/albums/([a-z]+)/[0-9]/[0-9]/[0-9]/[0]*([0-9]*)([0-9])/(.*)/cache/[0]*([0-9]*)-(.*)\.([a-z]*)$
 /cache/$1_cache/$6/$5-$6.$7;
                        rewrite   ^/cache/([a-z]+)_cache//(.*)$ 
/cache/$1_cache/src/$2;
                        if ($uri !~* ^/cache ) {
                                return   403;
                        }

                }
                location /albums_allow/ {
                        rewrite   
^/albums_allow/([a-z]+)/([0-9]?)([0-9]?).([a-z]*)$ /albums_allow/$1/0/$2$3.$4 
break;
                        rewrite   
^/albums_allow/([a-z]+)/([0-9]*)([0-9])([0-9])([0-9]).([a-z]*)$ 
/albums_allow/$1/$3/$2$3$4$5.$6;
                }

                location @fallback {
                        access_log /var/log/nginx.log new;
                        keepalive_timeout 0; # so when new images are 
requested, the connection is dropped to make downloads faster
                        proxy_set_header Srcuri $request_uri;
                        proxy_set_header Host $host;
                        proxy_set_header Weneed $uri;
                        proxy_pass   http://backend;
                        break;
                }

                location / {
                        if ($http_host ~ data(\d+)\.) {
                                set $root /data$1;
                                root  $root;
                                error_page       404  =  @fallback;
                        }
                }


        }



Thursday, January 1, 2009, 7:42:26 PM, you wrote:

> 01.01.2009 17:42, Arkadiy Kulev wrote:

>> Можно ли сделать так, чтобы использовался маска в server_name, например
>> server_name data([0-9]+).*;
>> которую потом можно было бы подставлять в root
>> root /data$1;
>> 
>> И таким образом все эти хосты бы умещались в одной записи?
> можно использовать например map
> http://sysoev.ru/nginx/docs/http/ngx_http_map_module.html и на 
> основании server_name получать root
> или что-то вроде
> set $newroot "";
> if($host  ~* "^(data[0-9]+)\..+"){
>     set $newroot $1;
> }
> root /$newroot;



Arkadiy Kulev                         mailto:eth@xxxxxxxxxxxx
+7 495 5070602
Moscow, Russia




 




Copyright © Lexa Software, 1996-2009.