nginx的优化
安全配置相关
1.设置隐藏nginx的版本信息
server_token off;
2.nginx文件的上传限制
client_max_body_size 设置大小
3.nginx的防盗链设置
1.通过页面加水印的方法
2.通过会话的验证进行设置(cookie,session会话验证等)
3.配置对应的valid_referers
valid_referers指令指定了允许访问的来源,none表示没有Referer头时允许,blocked表示禁止所有来自没有Referer头的请求,example.com和*.example.com表示允许从example.com及其子域访问。
4.防爬虫配置(user agent)
server {
listen 80;
server_name example.com;
set $blocked 0;
# 检查 User-Agent 是否包含常见爬虫关键字
if ($http_user_agent ~* (googlebot|bingbot|slurp|baidu|yandex)) {
set $blocked 1;
}
# 如果是爬虫,返回403
if ($blocked) {
return 403 "Forbidden: Bot access detected.";
}
# 其他配置...
}
文件一般设置为 644 目录755等 上传的目录改为nginx的用户
5.以nginx的用户权限配置启动nginx(有端口的限制 系统端口必须使用)
6.限制并发访问(# 定义连接限制区域,限制每个 IP 地址最多同时连接 1 个请求
limit_conn_zone $binary_remote_addr zone=addr:10m;)
limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=1r/s; # 定义请求限制区域,限制每个 IP 地址每秒最多 1 次请求
性能配置优化
1.worker_processes auto; ,Nginx 将会自动检测机器上的 CPU 核心数,并根据核心数决定启动多少个工作进程
2.multi_accept on; 工作进程会在收到新连接通知后,尽可能地一次性接受所有待处理的连接
高并发建议开启
3.client_body_buffer_size
- 作用: 设置用于读取客户端请求主体的缓冲区大小。
4.日志切割(logrotate)