教程 nginx tutorial

缓存与文件句柄优化

在高并发场景下,合理配置缓存和文件句柄可显著提升 Nginx 性能,减少文件 I/O 开销和请求延迟。

一、open_file_cache 配置

nginx
http {
    open_file_cache max=10000 inactive=20s;
    open_file_cache_valid 30s;
    open_file_cache_min_uses 2;
    open_file_cache_errors on;
}

`

  • open_file_cache:缓存打开的文件描述符
  • max:最大缓存数量
  • inactive:超过时间未访问文件会被移出缓存
  • open_file_cache_valid:缓存有效检查间隔
  • min_uses:文件被访问次数达到才缓存
  • open_file_cache_errors:是否缓存打开失败的文件

二、缓存路径优化

nginx
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m;
  • levels:缓存目录层级,提高文件查找效率
  • keys_zone:共享内存区存储缓存键
  • inactive:过期未访问文件自动清理
  • max_size:限制缓存总大小

三、文件描述符优化

  1. 调整系统文件描述符限制:
bash
ulimit -n 65535
  1. 确保 worker_connections 与系统限制匹配,提高最大并发处理能力

四、优化建议

  1. 对高并发静态文件服务,启用 open_file_cache 可减少磁盘 I/O
  2. 定期清理缓存目录,避免占满磁盘
  3. 配合 gzip 压缩和浏览器缓存提升性能
  4. 监控 Nginx 活跃连接数和缓存命中率,动态调整参数

通过优化缓存和文件句柄,Nginx 可以显著提升高并发场景下的性能,降低服务器负载并提高响应速度。