# 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 кэширование этих файлов на стороне клиента.