Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: on demand proxy_store
On Wed, 2010-11-17 at 14:42 +0200, Olexander Shtepa wrote:
>
> Из недостатков:
> - nginx екранирует символ + и другие. например
> libstdc++-4.1.2-48.el5.i386.rpm при закачке превращается в
> libstdc%2b%2b-4.1.2-48.el5.i386.rpm
> как боротся не придумал, просто вручную качаю через wget, благо таких
> файлов мало.
Модифицировал слегка Ваш вариант, для борьбы с плюсами:
в главном конфиге nginx:
perl_set $unescape '
sub {
my $r = shift;
my $ret = $r->uri;
$ret =~ s/\/[a-zA-Z0-9\.]*//;
return $ret;
}
';
в конфиге зеркала:
location ~ ^/fetch/([^/]+)(/.*)$ {
internal;
set $site $1;
set $file $2;
alias /srv/www/$domain/$1$2;
proxy_pass http://$site$file;
proxy_store on;
proxy_store_access user:rw group:rw all:r;
proxy_temp_path /srv/www/mirror.selfip.ru/tmp;
proxy_ignore_headers X-Accel-Redirect X-Accel-Expires Expires
Cache-Control;
}
location ~ ^/([^/]+)(/.*)$ {
set $site $1;
set $file $unescape;
root /srv/www/$domain;
error_page 404 403 = /fetch/$site$file;
}
Если кто-то предложит вариант без встроенного Perl буду рад :).
С апстримами пока что не пробовал еще...
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|