Re: Статика и кеширование

Gena Makhomed gmm на csdoc.com
Вс Июн 19 20:38:42 MSD 2011


On 19.06.2011 16:07, ssbury wrote:

> Всем доброго дня.
> Возникло пару вопросов по поводу
> кеширования статики. Есть локейшен
> который имеет вид:
>          location ~*
> ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|html|flv)$
> {
>                  root /srv/Web.domain.ru/;
>                  expires 14d;
>          }
>
> если я установлю на него кеширование,
> изменив локейшен следующим образом:
>          location ~*
> ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|html|flv)$
> {
>                  root /srv/Web/www.womenworld.com.ua/;
>
>                  proxy_pass http://127.0.0.1:80;
>                  proxy_redirect off;
>                  proxy_cache media;
>                  proxy_cache_key $my_cache_key;
>
>                  proxy_cache_valid  200 302 304 30d;
>                  proxy_cache_valid  301 1h;
>                  proxy_cache_valid  any 1m;
>                  proxy_cache_use_stale error timeout invalid_header
> http_500 http_502 http_503 http_504 http_404;
>
>                  expires 30d;
>          }
>
> Он будет работать быстрее за счет того
> что ему не надо рыться в каталогах
> всего сайта, или я ошибаюсь?

это зависит от количества файлов в одном подкаталоге
внутри /srv/Web/www.womenworld.com.ua/ - если их там
тысячи, десятки и сотни тысяч, то возможно кеширование
статики в локальный каталог proxy_cache на том же винту
и даст некоторое повышение производительности.

но для оптимизации поиска файлов в файловой системе
можно использовать и директиву open_file_cache.

кроме того, у файловой системы ext3
есть feature dir_index, которая позволяет
ускорить поиск файла по имени внутри каталога.

обычно только часто используемую статику
кешируют на более быстрый SCSI или NAND диск,
на frontend`e? при этом на backend`е стоит тоже nginx,
который эту статику отдает первому nginx`у
с более медленного сервера/хранилища с SATA-винтами.

в любом случае, точный ответ - будет ли быстрее,
или нет, и если будет быстрее, то насколько -
может дать только эксперимент на том сервере.

> И второе, Сейчас это все стоит на fs ext3. В
> будущем это исправим за счет
> дополнительного раздела с боле "легкой"
> fs. Достаточно будет потом на этот новый
> раздел указать, типа:
>
>      proxy_cache_path /var/lib/nginx/tmp/proxy_media levels=1:2
> keys_zone=media:100m max_size=1024m inactive=5d;
>      proxy_temp_path /var/lib/nginx/tmp/proxy_tmp 1 2;
>
> или необходимо определить какие-то
> дополнительные пути для корректного
> кеширования на разных fs сайта и кеша.

лучше добавить дополнительный винт,
и сделать "зеркало" раздела со статикой
средствами mdraid или средствами nginx
на эти два винта, и раздавать статику
клиентам одновременно с двух винтов.

> Сам сайт понятно останется на ext3.

вроде бы ext4 по всем параметрам лучше.
и уже достаточно давно достигла уровня stable.
кроме того, для такой задачи (раздача статики)
еще лучше может подойти файловая система XFS.

-- 
Best regards,
  Gena




Подробная информация о списке рассылки nginx-ru