Re: Изменение опций на основе IP-адреса клиента
Igor Sysoev
igor на sysoev.ru
Сб Апр 16 16:44:44 MSD 2011
On Sat, Apr 16, 2011 at 02:19:56PM +0700, Medvedchikov Alexey wrote:
>
> Здравствуйте.
>
> Возникла необходимость некоторому набору блоков адресов показывать
> содержимое папки, иначе отдавать какую-либо страничку (или просто 403).
> Я начинающий пользватель nginx, т.ч. возможно будет достаточно ткнуть в
> документацию палцем :). Пример работающего конфига:
>
> ==== 8< ====
> geo $allowed_ips {
> default 0;
> 127.0.0.0/8 1;
> }
>
> server {
> error_page 590 @enable-autoindex;
>
> location @enable-autoindex {
> internal;
> root /var/www/somesite.tld/files;
> autoindex on;
> }
>
> location / {
> if ($allowed_ips) {
> return 590;
> }
> # просто показываем страничку, например
> # настройки index'а и пр подразумеваются
> autoindex off;
> root /var/www/simesite.tld/htdocs;
> }
> }
> ==== 8< ====
>
> Есть ли возможность реализовать такой функционал "красивее", без
> использования фиктивного кода ошибки? Хорошим сахаром в конфигурации
> был бы, например:
>
> ==== 8< ====
> geo $is_autoindex_allowed {
> default off;
> 127.0.0.0/8 on;
> }
>
> #...
>
> location / {
> autoindex $is_autoindex_allowed;
> }
> ==== 8< ====
>
> Спасибо!
geo $forbbiden_ips {
default 1;
127.0.0.0/8 0;
}
location / {
index index.html /index.$forbbiden_ips.html;
autoindex on;
root /var/www/simesite.tld/htdocs;
}
В /var/www/somesite.tld/htdocs/index.1.html лежит страница с 403.
Файла /var/www/somesite.tld/htdocs/index.0.html нет.
--
Igor Sysoev
Подробная информация о списке рассылки nginx-ru