Re: nginx доступ к странице по времени
Не обязательно встроенный. Можно скриптом проверять время и делать внутреннее перенаправление на страницу если доступ разрешен. 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 доступ к странице по времени
Не обязательно встроенный. Можно скриптом проверять время и делать внутреннее перенаправление на страницу если доступ разрешен. 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 доступ к странице по времени
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 доступ к странице по времени
Спасибо, обновил 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 доступ к странице по времени
Спасибо за ответы. Подскажите, если 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 доступ к странице по времени
Не будет. 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