Здравствуйте!
Если есть время, посмотрите пожалуйста, не ошибся ли я где или по
другому можно сделать?
Задача в следующем. Есть cacti, у которого и php отображающие его и
конфиг и данные лежат в одном дереве fs, начиная с
/usr/local/share/cacti/
Нужно,
1. Разрешить обращения к php файлам в /cacti/ и только в нем, скроме
poller.php.
2. Отдавать css и js из /cacti/include/ и далее по дереву.
3. Отдавать картинки из /cacti/images/
4. Остальное запретить.
Вот, что у меня получилось:
location / {
internal;
}
location = /cacti/ {
proxy_pass http://cacti.cacti.vlink.ru/cacti/;
}
location = /cacti/poller.php {
internal;
}
location /cacti/images/ {
alias /var/jail/cacti/the.jail.local/share/cacti/images/;
expires 1M;
}
location ~ /\. {
internal;
}
location ~ ^/cacti/[^/]+\.php {
proxy_pass http://cacti.cacti.vlink.ru/;
}
location ~ ^/cacti/include/.+\.(css|js)$ {
root /var/jail/cacti/the.jail.local/share/;
expires 1M;
}
Может быть есть какие-нибудь замечания/советы?
Один из location'ов лишний. Я бы оставил без регулярного выражения.
-----------
location = /cacti/ {
proxy_pass http://cacti.cacti.vlink.ru/cacti/;
}
location ~ ^/cacti/[^/]+\.php {
proxy_pass http://cacti.cacti.vlink.ru/;
}
-----------
Кроме того, для "location /cacti/images/" я бы поставил ^~, если для
него действительно не нужно проверять регулярные выражения.
Игорь Сысоев
http://sysoev.ru