LINUX.ORG.RU
ФорумAdmin

nginx и хитрый root в proxy_cache_path

 


1

1

ubuntu 14.04

nginx.conf

proxy_cache_path /run/shm levels=1:2 keys_zone=STATIC:50m inactive=12m max_size=15000m;
/run/shm - рамдиск

создаём на левом порту сервер

server {
listen 127.0.0.1:8081;
root /home/ger/www/static/$tag/;
}
пишем в оригинале
server {
                listen *:80;
                server_name  ~^static\.(?<tag>.+)\.med.com

location ~* \.(svg|flv|webm|vob|ogv|wmv|m4v|srt|ssa|ass|mp4|mp3|ogg|avi|mkv|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf)$ {

####root /home/ger/www/static/$tag/;

proxy_pass http://127.0.0.1:8081;

proxy_cache STATIC;

proxy_cache_key $uri$is_args$args;

}
запрос http://static.aaa51295.med.com/logo_dateodernicht.png

в логе

/home/ger/www/static//logo_dateodernicht.png" failed (2: No such file or directory), client: 127.0.0.1, server: , request: "GET /logo_dateodernicht.png HTTP/1.0", host: "127.0.0.1:8081"
$tag ему не нравится. если без него - то всё прекрасно пашет и картинка нужная записывается в мемдиск

root /home/ger/www/static/$tag/; — если раскоментить — конечно всё работает, но в мемдиск ничего не пишется, а значит всё это бестолку

как быть?



Последнее исправление: beastie (всего исправлений: 1)

у тебя сервер нейм и локейшн заданы регекспами, соответственно второй херачет капчез первого, те надо через set сохранить значение.

ну и не совсем понятно как $tag попадет во второй сервер на 8081, ведь это будет уже _другой_ реквест.

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

пробуй

proxy_pass http://127.0.0.1:8081/$tag/$uri$is_args$args;

vs.

root /home/ger/www/static/;

drsm ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.