nginx防CC攻击配置,通过http_referer和限流实现CC攻击拦截

版权声明:本文为作者原创文章,转载请附上原文出处链接和本声明。
本文链接:http://doc.shulijp.com/jdetail/1594265124297

http {
    include       mime.types;
    default_type  application/octet-stream;
    #limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
   #limit_req_zone  $anti_spider  zone=one:10m   rate=10r/s;
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  www.shulijp.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
                #proxy_pass   http://127.0.0.1:8080 ;
                #proxy_pass   http://47.93.119.192:8080 ;
                rewrite "^/(.*)$" https://www.shulijp.com/$1 permanent;
        }
        index  index.html;
}
server {
        listen 443;
        server_name www.shulijp.com;
        ssl on;
        ssl_certificate   cert/www.shulijp.com.pem;
        ssl_certificate_key  cert/www.shulijp.com.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        location / {
                #limit_req zone=one burst=3 nodelay;
                 if ($request_method !~* "GET|POST") {
                         return 403;
                }
                #if ($http_referer ~* "yahoo.com|google.com|gmail.com|facebook.com|qq.com|https://baidu.com|youtube.com|reddit.com|https://https//|bing.com"){
                #   return 409;
                #}
                #root /data/;
               proxy_pass   http://127.0.0.1:8080;
                proxy_read_timeout 60s;
                proxy_set_header          Host            $host;
                proxy_set_header          X-Real-IP       $remote_addr;
                proxy_set_header          X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header 'Access-Control-Allow-Origin' '*';
        }
        index  index.html;
}
}

 

还能输入1000个字符
  • <code>一、校验数字的表达式  1 数字:^[0-9]*$  2 n位的数字:^\d{n}$  3 至少n位的数字:^\d{n,}$  4 m-n位的数字:^\d{m,n}$  5 零和非零开头的数字:^(0|[1-9][0-9]*)$  6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$  7 带1-2位小数的正数或负数:^(\-)?\d+(\

  • js日期格式化

    阅读数 24

    /***日期格式化*月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q)可以用1-2个占位符,年(y)可以用1-4个占位符,毫秒(S)只能用1个占位符(是1-3位的数字)例子:Format(

  • defwatermark(src_path,mask_path,alpha=0.7):img=cv2.imread(src_path)h,w=img.shape[0],img.shape[1]mask

  • 今天把我的摸索过程整理一下,说说如何用MySQL实现多关键词站内&ldquo;模糊查找&rdquo;。拿一个简化的小表儿做例子表名叫:article字段有:title、subtitle、tag、tex

  • 在不需要数据库密码的情况下执行:setpasswordfor&#39;root&#39;@&#39;localhost&#39;=password(&#39;MyNewPass4!&#39;);就会报

  • liunx服务器上默认没有安装zip命令,所以使用时需安装:apt-getinstallzip或yuminstallziplinux安装unzip命令:apt-getinstallunzip或yumi

  • /***方法1 *js获取url传递的参数  *@paramname参数名 *用法:getUrlParameter("page_type"); */functiongetUrlParameter(na

  • &!--复制粘贴板的内容--&document.addEventListener('paste',function(evt){clipdata=evt.clipboardData||window.cl

  • <code class="language-html">&lt;html&gt;&lt;head&gt; &lt;title&gt;获取鼠标选中的内容——试试按住鼠标拉动一下。&lt;/title&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale

  • 1.区块链定义:  区块链本质上是一个去中心化的分布式账本数据库。其本身是一串使用密码学相关联所产生的数据块,每一个数据块中包含了多次比特币网络交易有效确认的信息。  1.1区块链是一个放在非安全环境