HTTP кэширование I небольшое исследование по теме

2.39K
.
# Swank (09.01.2015 / 02:15)
ramzes, Я обяснил легче некуда, как это запрос не дойдет? Апач принимает смотрит на разрешение файла в запросе если оно *.png то передает запрос nginx тот обробатует, а если разрешение файла *.php то
как то непонятно ты разьяснил. вот теперь понял. проверю на днях. у меня раньше аватарки через реврайт шли. не помню, с расширением или нет, но работало.
надо затестировать это дело.
интересно. хотя конечно бессмысленно такой реврайт использовать.
з.ы. по мимо кеширования, в ту же область еще и сжатие и скорость загрузки и обработки страницы можно вписывать, ибо тормозят загрузку тоже прилично (первый заход я имею ввиду)
.
AlkatraZ
╭∩╮ (`-`) ╭∩╮
# ramzes (09.01.2015 / 01:21)
Swank, по моему мы друг-друга не понимаем..
если ты запросил физический адрес картинки то реврайт просто не нужен, он ни чего не делает.
если ты запросил адрес который обработает реврайт, то он ли
Он объяснил немного наоборот.
Давай разложим все "на пальцах"
---
Исходные данные:
у нас есть скрипт загруз центра, который чтоб скрыть прямые ссылки на файлы (типа нужна авторизация для скачки, или борьба с личерами) использует Реврайт.
На сервере у нас стоит стандартная связка Apache + Nginx
---
Все запросы от клиента попадают к Nginx, что бы я не запросил. На фронтэнде именно Nginx и что дальше произойдет, зависит от него.
Далее, у нас могут быть 2 сценария, в зависимости от настроек Nginx:

1) Nginx у нас настроен на обычное прозрачное проксирование.
Он передает ВСЕ запросы от клиента к Apache. Апач уже дальше сам решает что делать с запросом. Если есть правило Rewrite, то обрабатывает его, если нет, то отдает картинку напрямую.
Все работает отлично и никаких проблем нет.

2) Nginx настроен на прямую обработку статичных файлов
В этом случае, в его конфиге указаны расширения файлов, которые должен обрабатывать непосредственно Nginx. Если к примеру, в конфиге указан JPG и клиент запрашивает этот файл, то Nginx уже не передает Apache ничего, а сам ищет нужную картинку и отдает клиенту.
Достоинство:
Апач разгружается от лишних запросов. Особенная выгода от загрузки больших файлов. К примеру, клиент качает какой-нибудь архив в 20-30 мегабайт. Если канал медленный, то на закачку может уйти 10-20 минут. Все это время у сервера должен быть открыт поток. Nginx такое переваривает легко. У Апача идет дополнительный расход оперативки (thread mode).
Недостаток
Так, как указанные в конфиге файлы обрабатываются непосредственно Nginx, запросы на них не передаются Апачу. Соответственно НЕ БУДУТ РАБОТАТЬ все Rewrite правила, связанные с данными файлами и не будет работать настроенное в Expires кэширование этих файлов на стороне клиента.
.
(\/)____o_O____(\/)
AlkatraZ, еще можно было бы добавить такие штуки как ETag и Gzip, настройки апача и nginx
.
AlkatraZ, вот теперь понял)
.
Альк, CSS и JS | трюк с версиями и Rewrite тут не правильно.
/style/style.css?5 - вот так, общепринятый стандарт ресета кеша и версионности файлов
.
упс... сорри, начал писать недочитав. там оказывается продолжение было
.
инфу в закладки возьму и посмотрю что как
Всего: 87