Всем добрый вечер.
Nginx работает в качестве фронт-прокси для апача.
Структура паблика представлена следующим образом
/js
/i
/css
/share
test.js
Каждая из обозначенных папок может содержать другие папки и файлы некоторых форматов. Уровень вложенности не ограничен.
Необходимо сообразить 2 правила:
Первое - чтобы nginx отдавал как есть все файлы, с определёнными форматами, из корня и некоторых папок (js|css|i) и их подпапок, но только для валидного referer;
Второе - чтобы nginx отдавал все файлы любого формата из папки share и всех её вложенных подпапок без проверки referer.
Сейчас раздача статики производится по следующему правилу
location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|gz|)$ {
root $www_root;
expires 1M;
gzip_static on;
valid_referers none blocked test.ru www.test.ru;
if ($invalid_referer) {
return 403;
}
}
Тоесть все файлы с указанными расширениями и лежащие внутри паблик корня отдаются с проверкой реферера.
Локейшен на корень уже задан для проксирования
location / {
if ($host != 'test.ru' ) {
rewrite ^/(.*)$ http://test.ru/$1 permanent;
}
proxy_pass http://127.0.0.1:88/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Пытался дополнить его, но не вышло ввиду отсутствия относительных путей для вложенных локейшенов.
Потом пытался составить 2 новых локейшена для обозначенных выше правил, но никак не совладать с регуляркой.
Если кто поможет, буду очень признателен.
Edited 1 time(s). Last edit at 12/23/2011 09:17AM by esemi.