安全配置

防止常见攻击

# 限制请求方法
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;
    }
}

 

posted @ 2026-01-05 16:51  蘑菇味的花魂  阅读(4)  评论(0)    收藏  举报