Welcome! Log In Create A New Profile

Advanced

Re: on demand proxy_store

Olexander Shtepa
November 17, 2010 07:44AM
> Всем добрый день.
> Захотелось сделать зеркало debian и тп, но не полное, а по запросу с
> юзерский серверов. В итоге хранить самый употребительный минимум
> постоянно, остальное только некоторое время.
>
> Прочел про proxy_store/upstream но есть проблема - если я в апстриме
> пропишу mirror.yandex.ru, то надо делать set_header на его хост, если я
> в апстриме укажу, например 5 разных серверов, мне каким-то образом надо
> знать как передать им правильный Host:...
>
> Кто-то уже пробовал реализовать такое?

С целью поиграться создал у себя такую схему:
nginx-0.7.67

resolver 192.168.1.110;

server {
listen 192.168.1.4:80;
server_name repo.local.priv;

location ^~ /local/ {
alias /data/repo/;
}

location ~ ^/fetch/([^/]+)(/.*)$ {
internal;
set $site $1;
set $file $2;
alias /data/repo_cache/$1$2;
proxy_pass http://$site$file;
proxy_store on;
proxy_store_access user:rw group:rw all:r;
proxy_temp_path /data/repo_cache_tmp;
proxy_ignore_headers X-Accel-Redirect X-Accel-Expires Expires Cache-Control;
}

location ~ ^/([^/]+)(/.*)$ {
set $site $1;
set $file $2;
root /data/repo_cache;
error_page 404 = /fetch/$site$file;
}
}

/data/repo - локальные файлы
/data/repo_cache - закешированые файлы
/data/repo_cache_tmp - каталок для временных файлов

Обращение происходит по так:
к локальным файлам - http://repo.local.priv/local/CentOS-5/i386/nginx-0.7.67-1.el5.centos.i386.rpm
кеширующий запрос - http://repo.local.priv/mirror.centos.org/centos/5/updates/i386/RPMS/python-2.4.3-27.el5_5.3.i386.rpm

Работает кеширование так:
по УРЛУ http://repo.local.priv/mirror.centos.org/centos/5/updates/i386/RPMS/python-2.4.3-27.el5_5.3.i386.rpm
проверяется файл /data/repo_cache/mirror.centos.org/centos/5/updates/i386/RPMS/python-2.4.3-27.el5_5.3.i386.rpm
если его нету, то делается запрос http://mirror.centos.org/centos/5/updates/i386/RPMS/python-2.4.3-27.el5_5.3.i386.rpm и файл сохраняется.

Из плюсов:
- удобная и понятная иерархия закешированых файлов
Из недостатков:
- nginx екранирует символ + и другие. например libstdc++-4.1.2-48.el5.i386.rpm при закачке превращается в libstdc%2b%2b-4.1.2-48.el5.i386.rpm
как боротся не придумал, просто вручную качаю через wget, благо таких файлов мало.
- нету TTL, поетому все что может устареть чищу кроном
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

on demand proxy_store

Vasiliy G Tolstov November 17, 2010 07:08AM

Re: on demand proxy_store

Mykola S. Grechukh November 17, 2010 07:16AM

Re: on demand proxy_store

Vasiliy G Tolstov November 17, 2010 07:28AM

Re: on demand proxy_store

Mykola S. Grechukh November 17, 2010 07:36AM

Re: on demand proxy_store

Vasiliy G Tolstov November 17, 2010 07:42AM

Re: on demand proxy_store

Maxim Dounin November 17, 2010 07:40AM

Re: on demand proxy_store

Vasiliy G Tolstov November 17, 2010 07:44AM

Re: on demand proxy_store

Olexander Shtepa November 17, 2010 07:44AM

Re: on demand proxy_store

Vasiliy G Tolstov November 17, 2010 07:46AM

Re: on demand proxy_store

Mykola S. Grechukh November 17, 2010 08:02AM

Re: on demand proxy_store

Vasiliy G Tolstov November 17, 2010 08:06AM

Re: on demand proxy_store

Vasiliy G Tolstov November 30, 2010 09:52AM

Re: on demand proxy_store

Andrey Repin November 18, 2010 11:36PM

Re: on demand proxy_store

Vasiliy G Tolstov November 19, 2010 03:24AM

Re[2]: on demand proxy_store

Andrey Repin November 19, 2010 04:12AM

Re: Re[2]: on demand proxy_store

Mykola S. Grechukh November 19, 2010 04:20AM

Re[4]: on demand proxy_store

Andrey Repin November 19, 2010 03:12PM

Re: Re[2]: on demand proxy_store

Vasiliy G Tolstov November 19, 2010 04:36AM

Re[4]: on demand proxy_store

Andrey Repin November 19, 2010 03:16PM

Re: on demand proxy_store

Olexander Shtepa January 14, 2011 05:58AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 237
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready