zoukankan      html  css  js  c++  java
  • nginx 安全配置和限制访问

    nginx基本安全配置

    配置ssl证书

    listen 443 ssl;
    ssl_certificate /usr/local/nginx/conf/server.crt;
    ssl_certificate_key /usr/local/nginx/conf/server.key;

    关闭目录浏览功能

    http {
         autoindex off;
    }

    隐藏版本号

    http {
         server_tokens off;
    }

    请求头部和连接时间配置

    http {
    #设置客户端请求头读取超时时间,超过这个时间还没有发送任何数据,Nginx将返回“Request time out(408)”错误
    client_header_timeout 15;
    #设置客户端请求主体读取超时时间,超过这个时间还没有发送任何数据,Nginx将返回“Request time out(408)”错误
    client_body_timeout 15;   
    #上传文件大小限制
    client_max_body_size 100m;
    #指定响应客户端的超时时间。这个超过仅限于两个连接活动之间的时间,如果超过这个时间,客户端没有任何活动,Nginx将会关闭连接。
    send_timeout    600;
    #设置客户端连接保持会话的超时时间,超过这个时间,服务器会关闭该连接。
    keepalive_timeout 60;
    }

    ip访问控制

    #设置网站目录的访问权限
    location /download {
        allow 192.168.1.1/24;
        allow 120.20.93.79;
        deny all;
    }

    nginx高级安全配置

    访问权限控制

    server {
        ...
        auth_basic "website login";
        auth_basic_user_file conf/.htpasswd;
    }

     连接数和请求速率控制

    limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s;
    limit_conn_zone   ip_zone  $binary_remote_addr  10m;
    ......
    location {
                ...
    
                #限制每ip每秒不超过20个请求,漏桶数burst为5
                #brust的意思就是当每秒超过20个请求时,5个以内的请求会被延迟访问,超过5个的直接返回503
                #nodelay,设置该选项,将严格使用平均速率限制请求数,超过请求频率的直接返回503
                limit_req zone=allips burst=5 nodelay;
                limit_conn ip_zone 20;          #连接数限制
    limit_rate 500k;    
    ... }
  • 相关阅读:
    JDBC存取二进制文件示例
    java多线程向数据库中加载数据
    Lucene建索引代码
    postgresql存储二进制大数据文件
    java项目使用Echarts 做柱状堆叠图,包含点击事件
    子页面获取父页面控件
    JSTL和select标签的组合使用
    log4j配置祥解
    IT项目经理应具备的十大软技能
    Spring和Struct整合的三个方法
  • 原文地址:https://www.cnblogs.com/imcati/p/11750441.html
Copyright © 2011-2022 走看看