Welcome! Log In Create A New Profile

Advanced

Вложенные location

Posted by esemi 
Вложенные location
December 23, 2011 09:17AM
Всем добрый вечер.

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.
Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 173
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready