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