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;    
    ... }
  • 相关阅读:
    json2.js和wcf传递Date对象问题
    使用WebClient发送POST请求
    我也质疑下petshop
    sql server 2005 游标使用小例
    关于SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY
    小错误大麻烦
    SQL Server启动出现“指定的服务未安装”的解决方法
    非常不错的一个网站
    objectdatasource 未能找到带参数的非泛型方法
    SQLServer日志文件收缩
  • 原文地址:https://www.cnblogs.com/imcati/p/11750441.html
Copyright © 2011-2022 走看看