Вобщем, в настоящий момент у меня единственный вопрос, как сделать так, чтобы ключом к кэшу nginx была часть url и в случае если по этому url 404, то контент и кэша юзеру не выдавать<br><br>т.е. на запрос <a href="http://frontend/secure_link/file_id/filename">http://frontend/secure_link/file_id/filename</a><br>
кэш nginx должен попробовать закешировать по ключу file_id файл на <a href="http://backend/secure_link/file_id/filename">http://backend/secure_link/file_id/filename</a> и если там 404, то не отдавать юзеру контент.<br><br>
я так понимаю это что-то вроде <br>rewrite /.*?/(\d+)/.*<br>proxy_cache_key $1<br>proxy_cache_use_stale off<br><br>к сожалению, не очень хорошо знаю синтаксис ngix, чтобы сделать правильно<br><br><div class="gmail_quote">
2009/8/3  <span dir="ltr">&lt;<a href="mailto:ilya@aniskovets.com">ilya@aniskovets.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
проблема в том, что для того чтобы php передал x-accel-redirect он должен сначала скачать файл с удаленного сервера (если его нет в кэше, который я организовал), это вызывает задержку перед началом скачивания файла. Как я понял, nginx может скачать файл в кэш и паралельно отдавать его, т.е. единственная проблема, как заставить nginx проверить валидна ли секретная ссылка, с того ли она IP что надо и не прошло ли N времени с момента ее генерации.<br>

Т.е. схема такая:<br><br>Фронтенд: nginx + fastcgi php (ссылка проверяется, файл скачивается с Сервера 2, кэшируется (лимитированный размер кэша) и отдается клиенту)<br><br>Бакэнд: nginx  (файловый архив)<br><br>Организовать скачивание необходимо именно на Фронтенде, используя файловый архив только в случае, если нет в кэше архива. Хочу сделать так, чтобы в связке небыло php и соответственно загрузка начиналась без задержки на скачивание с бакэнда.<br>

<br>  <div class="gmail_quote">2009/8/3 Artyom Nosov <span dir="ltr">&lt;<a href="mailto:chip@unixstyle.ru" target="_blank">chip@unixstyle.ru</a>&gt;</span><div><div></div><div class="h5"><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div><a href="mailto:ilya@aniskovets.com" target="_blank">ilya@aniskovets.com</a> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
хардлинки я как раз сейчас делаю, но проблема в том, что мне нужно чтобы качалось именно с фронтенда и там же кешировалось, а сам файл сервер использовался по минимуму, поэтому я и хочу использовать nginx, так как он может кэшировать и в реалтайме отдавать, однако столкнулся с тем, что не могу в нем сделать проверки на валидность хэша. Сейчас я просто с помощью фронтентда и php гружу файл в кеш и отдаю его по внутренней переадресации nginx. php скрипт проверяет хэш IP + время и отдает файл. Хочется обойтись без php и добится реалтайма<br>


</blockquote>
<br></div>
Что в вашем понятии &quot;реалтайм&quot;? Если nginx общается с php через fastcgi и php на валидный запрос возвращает X-Accel-Redirect это вполне себе оптимальная схема.<div><div></div><div><br>
<br>
-- <br>
Sincerely,<br>
<br>
Artyom Nosov<br>
<a href="http://www.unixstyle.ru" target="_blank">http://www.unixstyle.ru</a> | JID <a href="mailto:chip@xmpp.ru" target="_blank">chip@xmpp.ru</a> | ICQ 128417264<br>
<br>
</div></div></blockquote></div></div></div><br>
</blockquote></div><br>