Re: Проблема с proxy_store/proxy_pass при не хватке места в хранилище
Vladimir Sopot
jd at artdesign.ru
Fri Mar 13 17:03:51 MSK 2009
Поддерживаю! Мои 5 копеек.
Используется та же схема, но с переполнением не сталкивался, поскольку
раз в N дней в момент минимальной нагрузки просто тупо стираю весь кэш
(занятие на десяток секунд вместо более длительной проверки) и он
посетпенно наполняется реально запрашиваемым контентом.
Но вопрос переполнения хранилища - хороший и отдавать контент не
сохраняя на заполненные диски - отличное решение.
On Mar 13, 2009, at 1:48 PM, Andrey Zonov wrote:
> Добрый день.
>
> Для снижения нагрузки на бекенды было принято решение сохранять
> картинки на машинки с nginx-ом, регулярно чистить хранилище от самых
> не популярных картинок, т.е. фактически сделать кеширование.
>
> При не хватке места в хранилище - nginx отдаёт клиенту 200, с пустым
> телом, потому что тело не может сохранить.
> Можно ли как-то регулировать это поведение?
> В идеале хочется: если файл не удаётся сохранить, то тело, таки
> отдавать клиенту.
>
> nginx.conf:
> ...
> http {
> ...
> proxy_connect_timeout 3;
> proxy_buffering on;
> proxy_buffer_size 32k;
> proxy_buffers 32 32k;
> proxy_intercept_errors off;
> proxy_next_upstream error timeout http_500;
> proxy_store_access user:rw group:rw all:r;
> proxy_temp_path /place/nginx/cache/spool 1 2;
>
> upstream p0 {
> server w1.xxx.ru:5555;
> server w2.xxx.ru:5555;
> ...
> }
> ...
> server {
> listen *:80 default;
> server_name localhost;
>
> #-- main
> location / {
> if ( $request_uri ~
> ^/img\?id=([0-9])[0-9]*&rep=([0-9]) ) {
> set $hash $1;
> set $rep $2;
> }
> error_page 404 = @try;
> }
>
> #-- try local file
> location @try {
> root /place/nginx/cache/$rep/$hash;
> access_log /place/nginx/access_$rep.log
> stat;
> try_files $request_uri @proxy$rep;
> }
> #-- proxy0
> location @proxy0 {
> access_log /place/nginx/access_proxy_
> $rep.log stat;
> proxy_store
> /place/nginx/cache/$rep/$hash$request_uri;
> proxy_pass http://p0;
> }
> ...
> }
>
> Если отключить proxy_buffering, то proxy_store совсем перестаёт
> работать :(
>
> --
> Andrey Zonov
More information about the nginx-ru
mailing list