1 января 2009 г. 18:42 пользователь Arkadiy Kulev <eth@xxxxxxxxxxxx> написал:
Здравствуйте, можно ли использовать wildcards в server_name?
К примеру, я использую хосты вида data1.****.ru, data2.****.ru, итд.
Они все заведены на один сервер, и каждый хост подключен к своей
папке /data1, /data2, итд.
Так вот, так как таких хостов много, но структура конфига у них
одинаковая, то мне приходится дублировать вот такие записи:
server {
listen ***:80;
server_name data1 ~[0-9].data1.*$ data1.*;
access_log /var/log/nginx.log static;
root /data1;
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;
}
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;
}
error_page 404 = @fallback;
}
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;
}
}
Можно ли сделать так, чтобы использовался маска в server_name, например
server_name data([0-9]+).*;
которую потом можно было бы подставлять в root
root /data$1;
И таким образом все эти хосты бы умещались в одной записи?
Arkadiy Kulev mailto:eth@xxxxxxxxxxxx
+7 495 5070602
Moscow, Russia