Re: nginx доступ к странице по времени

2013-04-05 Пенетрантность Andrey Velikoredchanin
Не обязательно встроенный. Можно скриптом проверять время и делать
внутреннее перенаправление на страницу если доступ разрешен. IMHO, самый
простой и гибкий вариант.


5 апреля 2013 г., 11:40 пользователь Vadim Lazovskiy 
vadim.lazovs...@gmail.com написал:

 Здравствуйте.

 Начиная с версий 1.3.12 и 1.2.7 доступна переменная $time_iso8601 (раньше
 была только в log_module). Ее можно смапить в флажок доступа:

 map $time_iso8601 $hour {
 ~\d{4}-\d{2}-\d{2}T(?h\d{2}): $h;
 }

 map $hour $forbidden {
09 0;
10 0;
11 0;
12 0;
 default 1;

 }

 ...
 server {
...
location /webinar/ {
  error_page 403 /webinar_forbidden.html;
  if ($forbidden) {
return 403;
  }
}

 Можно обойтись и без промежуточной переменной $hour, забив в регулярное
 выражение нужные часы.
 В более старых версиях, imho, только встроенный perl.


 5 апреля 2013 г., 9:15 пользователь heroin nginx-fo...@nginx.us написал:

 Всем добрый день.

 Подскажите как ограничить время доступа к странице в nginx ?
 Есть установленный BigBlueButton, нужно чтобы доступ к созданному вебинару
 был только в определенное время, а в другое время выдавалась нужная
 заглушка.
 В apache я так понимаю это делается модулем mod_rewrite и записью в
 .htaccess в директории с нужной страницей что то вроде

 Код:
 RewriteEngine on

 RewriteCond %{TIME_HOUR}%{TIME_MIN}  900
 RewriteCond %{TIME_HOUR}%{TIME_MIN}  1800
 RewriteRule .* - [ F ]


 Как сделать в nginx ?

 Заранее спасибо.

 Posted at Nginx Forum:
 http://forum.nginx.org/read.php?21,238121,238121#msg-238121

 ___
 nginx-ru mailing list
 nginx-ru@nginx.org
 http://mailman.nginx.org/mailman/listinfo/nginx-ru




 --
 Best Regards,
 Vadim Lazovskiy

 ___
 nginx-ru mailing list
 nginx-ru@nginx.org
 http://mailman.nginx.org/mailman/listinfo/nginx-ru

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: nginx доступ к странице по времени

2013-04-05 Пенетрантность heroin
Не обязательно встроенный. Можно скриптом проверять время и делать
внутреннее перенаправление на страницу если доступ разрешен. IMHO, самый
простой и гибкий вариант.

Можно уточнить как это сделать ?
Заранее спасибо.

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,238121,238132#msg-238132

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: nginx доступ к странице по времени

2013-04-05 Пенетрантность Andrey Velikoredchanin
5 апреля 2013 г., 14:15 пользователь heroin nginx-fo...@nginx.us написал:

 Не обязательно встроенный. Можно скриптом проверять время и делать
 внутреннее перенаправление на страницу если доступ разрешен. IMHO, самый
 простой и гибкий вариант.

 Можно уточнить как это сделать ?
 Заранее спасибо.


Типа вот такого:

location /files {
proxy_pass http://127.0.0.1:8080/
}

location /int_files {
   internal;

   root_path /var/www/files;
}

На порту 3000 повесить скрипт, который будет получать запрос,
анализировать, имеет-ли право данный юзер на данный запрос в данное время и
если имеет - выдавать в ответ заголовок с X-Accel-Redirect на путь
/int_files/... на нужный файл. Если прав нет, можно выдавать, например,
статус 404 или перенаправить внешним редиректом на страницу с объяснением
что типа Время вышло.

Для пользователя все это будет прозрачно и незаметно, т.к. перенаправление
внутреннее.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: nginx доступ к странице по времени

2013-04-05 Пенетрантность heroin
Спасибо, обновил nginx данный способ работает.
А можно узнать как еще в map дни недели подсунуть ?
Заранее спасибо.

Vadim Lazovskiy Wrote:
---
 Здравствуйте.
 
 Начиная с версий 1.3.12 и 1.2.7 доступна переменная $time_iso8601
 (раньше
 была только в log_module). Ее можно смапить в флажок доступа:
 
 map $time_iso8601 $hour {
 ~\d{4}-\d{2}-\d{2}T(?h\d{2}): $h;
 }
 
 map $hour $forbidden {
09 0;
10 0;
11 0;
12 0;
 default 1;
 
 }
 
 ...
 server {
...
location /webinar/ {
  error_page 403 /webinar_forbidden.html;
  if ($forbidden) {
return 403;
  }
}
 
 Можно обойтись и без промежуточной переменной $hour, забив в
 регулярное
 выражение нужные часы.
 В более старых версиях, imho, только встроенный perl.
 
 
 5 апреля 2013 г., 9:15 пользователь heroin nginx-fo...@nginx.us
 написал:
 
  Всем добрый день.
 
  Подскажите как ограничить время доступа к странице в nginx ?
  Есть установленный BigBlueButton, нужно чтобы доступ к созданному
 вебинару
  был только в определенное время, а в другое время выдавалась нужная
  заглушка.
  В apache я так понимаю это делается модулем mod_rewrite и записью в
  .htaccess в директории с нужной страницей что то вроде
 
  Код:
  RewriteEngine on
 
  RewriteCond %{TIME_HOUR}%{TIME_MIN}  900
  RewriteCond %{TIME_HOUR}%{TIME_MIN}  1800
  RewriteRule .* - [ F ]
 
 
  Как сделать в nginx ?
 
  Заранее спасибо.
 
  Posted at Nginx Forum:
  http://forum.nginx.org/read.php?21,238121,238121#msg-238121
 
  ___
  nginx-ru mailing list
  nginx-ru@nginx.org
  http://mailman.nginx.org/mailman/listinfo/nginx-ru
 
 
 
 
 -- 
 Best Regards,
 Vadim Lazovskiy
 ___
 nginx-ru mailing list
 nginx-ru@nginx.org
 http://mailman.nginx.org/mailman/listinfo/nginx-ru

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,238121,238135#msg-238135

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: nginx доступ к странице по времени

2013-04-05 Пенетрантность heroin
Спасибо за ответы.

Подскажите, если nginx -V не выводит в списке ключей
--with-http_perl_module, то перл работать не будет ?

Я прошу прощения за такие вопросы, на nginx смотрю второй день, а задача
стоит приоритетная.
Еще раз всем спасибо.

Vadim Lazovskiy Wrote:
---
 День недели с мапом - никак. На перле что-то примерно такое:
 
 http {
 
 perl_set $forbidden 'sub {
 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)
 =
 localtime(time);
 
 if($wday  0  $wday  6  $hour  9  $hour  18)
 {
 return 0;
 }
 
 return 1;
 }';
 
server {
 location ... {
   ...
   if ($forbidden) {
   ...
   }
 }
}
 }
 
 
 5 апреля 2013 г., 14:31 пользователь heroin nginx-fo...@nginx.us
 написал:
 
  Спасибо, обновил nginx данный способ работает.
  А можно узнать как еще в map дни недели подсунуть ?
  Заранее спасибо.
 
  Vadim Lazovskiy Wrote:
  ---
   Здравствуйте.
  
   Начиная с версий 1.3.12 и 1.2.7 доступна переменная $time_iso8601
   (раньше
   была только в log_module). Ее можно смапить в флажок доступа:
  
   map $time_iso8601 $hour {
   ~\d{4}-\d{2}-\d{2}T(?h\d{2}): $h;
   }
  
   map $hour $forbidden {
  09 0;
  10 0;
  11 0;
  12 0;
   default 1;
  
   }
  
   ...
   server {
  ...
  location /webinar/ {
error_page 403 /webinar_forbidden.html;
if ($forbidden) {
  return 403;
}
  }
  
   Можно обойтись и без промежуточной переменной $hour, забив в
   регулярное
   выражение нужные часы.
   В более старых версиях, imho, только встроенный perl.
  
  
   5 апреля 2013 г., 9:15 пользователь heroin nginx-fo...@nginx.us
   написал:
  
Всем добрый день.
   
Подскажите как ограничить время доступа к странице в nginx ?
Есть установленный BigBlueButton, нужно чтобы доступ к
 созданному
   вебинару
был только в определенное время, а в другое время выдавалась
 нужная
заглушка.
В apache я так понимаю это делается модулем mod_rewrite и
 записью в
.htaccess в директории с нужной страницей что то вроде
   
Код:
RewriteEngine on
   
RewriteCond %{TIME_HOUR}%{TIME_MIN}  900
RewriteCond %{TIME_HOUR}%{TIME_MIN}  1800
RewriteRule .* - [ F ]
   
   
Как сделать в nginx ?
   
Заранее спасибо.
   
Posted at Nginx Forum:
http://forum.nginx.org/read.php?21,238121,238121#msg-238121
   
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
  
  
  
  
   --
   Best Regards,
   Vadim Lazovskiy
   ___
   nginx-ru mailing list
   nginx-ru@nginx.org
   http://mailman.nginx.org/mailman/listinfo/nginx-ru
 
  Posted at Nginx Forum:
  http://forum.nginx.org/read.php?21,238121,238135#msg-238135
 
  ___
  nginx-ru mailing list
  nginx-ru@nginx.org
  http://mailman.nginx.org/mailman/listinfo/nginx-ru
 
 
 
 
 -- 
 Best Regards,
 Vadim Lazovskiy
 ___
 nginx-ru mailing list
 nginx-ru@nginx.org
 http://mailman.nginx.org/mailman/listinfo/nginx-ru

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,238121,238138#msg-238138

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: nginx доступ к странице по времени

2013-04-05 Пенетрантность Vadim Lazovskiy
Не будет.


5 апреля 2013 г., 15:18 пользователь heroin nginx-fo...@nginx.us написал:

 Спасибо за ответы.

 Подскажите, если nginx -V не выводит в списке ключей
 --with-http_perl_module, то перл работать не будет ?

 Я прошу прощения за такие вопросы, на nginx смотрю второй день, а задача
 стоит приоритетная.
 Еще раз всем спасибо.

 Vadim Lazovskiy Wrote:
 ---
  День недели с мапом - никак. На перле что-то примерно такое:
 
  http {
 
  perl_set $forbidden 'sub {
  ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)
  =
  localtime(time);
 
  if($wday  0  $wday  6  $hour  9  $hour  18)
  {
  return 0;
  }
 
  return 1;
  }';
 
 server {
  location ... {
...
if ($forbidden) {
...
}
  }
 }
  }
 
 
  5 апреля 2013 г., 14:31 пользователь heroin nginx-fo...@nginx.us
  написал:
 
   Спасибо, обновил nginx данный способ работает.
   А можно узнать как еще в map дни недели подсунуть ?
   Заранее спасибо.
  
   Vadim Lazovskiy Wrote:
   ---
Здравствуйте.
   
Начиная с версий 1.3.12 и 1.2.7 доступна переменная $time_iso8601
(раньше
была только в log_module). Ее можно смапить в флажок доступа:
   
map $time_iso8601 $hour {
~\d{4}-\d{2}-\d{2}T(?h\d{2}): $h;
}
   
map $hour $forbidden {
   09 0;
   10 0;
   11 0;
   12 0;
default 1;
   
}
   
...
server {
   ...
   location /webinar/ {
 error_page 403 /webinar_forbidden.html;
 if ($forbidden) {
   return 403;
 }
   }
   
Можно обойтись и без промежуточной переменной $hour, забив в
регулярное
выражение нужные часы.
В более старых версиях, imho, только встроенный perl.
   
   
5 апреля 2013 г., 9:15 пользователь heroin nginx-fo...@nginx.us
написал:
   
 Всем добрый день.

 Подскажите как ограничить время доступа к странице в nginx ?
 Есть установленный BigBlueButton, нужно чтобы доступ к
  созданному
вебинару
 был только в определенное время, а в другое время выдавалась
  нужная
 заглушка.
 В apache я так понимаю это делается модулем mod_rewrite и
  записью в
 .htaccess в директории с нужной страницей что то вроде

 Код:
 RewriteEngine on

 RewriteCond %{TIME_HOUR}%{TIME_MIN}  900
 RewriteCond %{TIME_HOUR}%{TIME_MIN}  1800
 RewriteRule .* - [ F ]


 Как сделать в nginx ?

 Заранее спасибо.

 Posted at Nginx Forum:
 http://forum.nginx.org/read.php?21,238121,238121#msg-238121

 ___
 nginx-ru mailing list
 nginx-ru@nginx.org
 http://mailman.nginx.org/mailman/listinfo/nginx-ru
   
   
   
   
--
Best Regards,
Vadim Lazovskiy
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
  
   Posted at Nginx Forum:
   http://forum.nginx.org/read.php?21,238121,238135#msg-238135
  
   ___
   nginx-ru mailing list
   nginx-ru@nginx.org
   http://mailman.nginx.org/mailman/listinfo/nginx-ru
  
 
 
 
  --
  Best Regards,
  Vadim Lazovskiy
  ___
  nginx-ru mailing list
  nginx-ru@nginx.org
  http://mailman.nginx.org/mailman/listinfo/nginx-ru

 Posted at Nginx Forum:
 http://forum.nginx.org/read.php?21,238121,238138#msg-238138

 ___
 nginx-ru mailing list
 nginx-ru@nginx.org
 http://mailman.nginx.org/mailman/listinfo/nginx-ru




-- 
Best Regards,
Vadim Lazovskiy
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru