安全配置
防止常见攻击
# 限制请求方法 location / { limit_except GET POST { deny all; 表示拒绝其他所有方法 } } # 防止 SQL 注入和 XSS(基础防护)server或者location块 if ($request_uri ~* "(union|select|insert|delete|update|drop)") { return 403; 正则匹配 } # 防止目录遍历 location ~ /\. { deny all; } # 限制文件上传大小 client_max_body_size 10m;
访问控制
# IP 白名单 location /admin/ { allow 192.168.1.0/24; allow 10.0.0.1; deny all; } # HTTP 基本认证 location /secure/ { auth_basic "Restricted Access"; 这行启用 HTTP 基本认证,提示用户输入用户名和密码才能访问 auth_basic_user_file /etc/nginx/.htpasswd; .htpasswd 文件的位置,该文件包含了用户名和密码 }
限流配置
# 定义限流区域 limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; 使用客户端的 IP 地址($remote_addr)作为限流的基础,这样每个 IP 地址的请求都会被单独限制。 为限流配置一个名为 one 的共享内存区域,大小为 10MB limit_conn_zone $binary_remote_addr zone=addr:10m; 并发连接数 server { location /api/ { # 限制请求频率(每秒 1 个请求,突发最多 5 个) limit_req zone=one burst=5 nodelay; # 限制并发连接数 limit_conn addr 10; } }

浙公网安备 33010602011771号