Nginx的请求时间限制

复制代码
# 在 location 模块添加以下代码

        # 自定义404页面
        #    error_page   404  /index404.html;    文件在nginx的html目录下
        #    location = /index404.html {
        #        root   /usr/local/nginx/html;   默认的html文件夹路径
        #    }
            
            # 获取当前日期的星期几
            set $weekday "";
            if ($date_gmt ~ "Mon") {
                set $weekday 1;
            }
            if ($date_gmt ~ "Tue") {
                set $weekday 2;
            }
            if ($date_gmt ~ "Wed") {
                set $weekday 3;
            }
            if ($date_gmt ~ "Thu") {
                set $weekday 4;
            }
            if ($date_gmt ~ "Fri") {
                set $weekday 5;
            }
            if ($date_gmt ~ "Sat") {
                set $weekday 6;
            }
            if ($date_gmt ~ "Sun") {
                set $weekday 7;
            }
            
            # 周六、周天禁止访问,提前终止
            if ($weekday  ~  6|7) {
                return 404;
            }
            
            # 时间限制访问  如 830 到11:30可以访问
            # 先获取具体时间
            if ( $time_local ~ "^(\d+)\/(\w+)\/(\d+):(\d+):(\d+):(\d+) \+(\d+)" ) {
              set $hour $4;
              set $day  $1;
              set $month $2;
              set $min $5;
            }
            
            # 开放小时时间
            set $flag "";
            if ($hour ~ 08|09|11) {
                set $flag "${flag}1";
            }
            # 不在开放时间内 提前终止,404
            if (($flag = "") {
                return 404;
            }
            
            # 但是8:00-8:30与 11:30 - 11:59 是不能访问的
            set $flag2 "";
            if ($hour = 08) {
                set $flag2 "${flag2}1";
            }
            if ($hour= 11) {
                set $flag2 "${flag2}2";
            }
            if ($min ~ 01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29) {
                set $flag2 "${flag2}9";
            }
            # 判断是不是8:00 - 8:30
            if ($flag2 = 19) {
                return 404;
            }
            # 判断是不是11:30 - 11:59 
            if ($flag2 = 2) {
                return 404;
            }
            
            #  下面代码就是允许通过后nginx该怎么做的代码
复制代码

 

posted @   飘着一个个的梦  阅读(130)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
欢迎阅读『Nginx的请求时间限制』
点击右上角即可分享
微信分享提示