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

Vadim Lazovskiy vadim.lazovskiy at gmail.com
Fri Apr 5 10:57:04 UTC 2013


День недели с мапом - никак. На перле что-то примерно такое:

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-forum at 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-forum at 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 at nginx.org
> > > http://mailman.nginx.org/mailman/listinfo/nginx-ru
> >
> >
> >
> >
> > --
> > Best Regards,
> > Vadim Lazovskiy
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru at 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 at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>



-- 
Best Regards,
Vadim Lazovskiy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20130405/d929613b/attachment.html>


Подробная информация о списке рассылки nginx-ru