nginx.conf 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #user nobody;
  2. worker_processes auto;
  3. error_log logs/error.log error; # 只记录严重错误,减少磁盘IO和日志文件大小
  4. #error_log logs/error.log;
  5. #error_log logs/error.log notice;
  6. #error_log logs/error.log info;
  7. #pid logs/nginx.pid;
  8. events {
  9. worker_connections 1024; # 单个worker进程最大连接数
  10. multi_accept on; # 一次性接受所有新连接
  11. use epoll;
  12. }
  13. #=====================================================
  14. # HTTP 全局块
  15. #=====================================================
  16. http {
  17. include mime.types;
  18. default_type application/octet-stream;
  19. #-------------------------------------------------
  20. # 日志配置
  21. #-------------------------------------------------
  22. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  23. '$status $body_bytes_sent "$http_referer" '
  24. '"$http_user_agent" "$request_time" "$upstream_response_time"';
  25. access_log logs/access.log main;
  26. error_log logs/error.log warn;
  27. #-------------------------------------------------
  28. # 性能优化
  29. #-------------------------------------------------
  30. server_tokens off; # 隐藏NGINX版本信息
  31. # I/O优化 - 减少带宽消耗和提高传输效率
  32. sendfile on; # 开启零拷贝文:件传输,减少CPU消耗和内核上下文切换
  33. tcp_nopush on; # 优化数据包传输,减少网络报文数量,配合sendfile使用
  34. tcp_nodelay on; # 禁用Nagle算法,降低小数据包传输延迟
  35. # 连接优化 - 减少TCP连接建立的开销
  36. keepalive_timeout 65; # 保持客户端连接超时时间(秒),减少重复的TCP握手
  37. keepalive_requests 100; # 在一个keepalive连接上可处理的最大请求数
  38. #-------------------------------------------------
  39. # 静态文件缓存优化 - 减少重复读取文件的开销
  40. #-------------------------------------------------
  41. open_file_cache max=10000 inactive=20s; # 缓存最多10000个文件描述符,20秒不使用则关闭
  42. open_file_cache_valid 30s; # 每30秒检查一次缓存中的文件描述符是否仍然有效
  43. open_file_cache_min_uses 2; # 文件被访问至少2次后才会被缓存,降低低频访问文件的缓存
  44. open_file_cache_errors on; # 同时缓存文件错误信息,避免重复访问不存在的文件
  45. #-------------------------------------------------
  46. # Gzip 压缩配置 - 显著减少传输数据量,节省带宽
  47. #-------------------------------------------------
  48. gzip on; # 启用gzip压缩,可减少传输数据量40%-70%
  49. gzip_comp_level 6; # 压缩级别(1-9),一般来说推荐你设置成 6 就比较合适
  50. gzip_min_length 1k; # 最小压缩文件大小(字节),小于此值的文件不压缩
  51. gzip_buffers 16 8k; # 压缩缓冲区大小,16个8k的缓冲区
  52. gzip_proxied any; # 对所有代理请求进行压缩,包括反向代理的响应
  53. gzip_vary on; # 添加Vary: Accept-Encoding响应头,正确处理缓存
  54. gzip_static on; # 优先使用预压缩.gz文件,减少CPU使用率
  55. gzip_http_version 1.1; # 使用HTTP 1.1版本,支持gzip压缩
  56. gzip_disable "MSIE [1-6]\."; # 对IE6及以下浏览器禁用gzip,避免兼容性问题
  57. gzip_types text/plain text/css text/xml text/javascript application/javascript application/json application/xml application/xml+rss image/svg+xml image/png font/eot font/otf font/ttf application/octet-stream;
  58. #-------------------------------------------------
  59. # 上传与超时限制
  60. #-------------------------------------------------
  61. client_max_body_size 50m;
  62. client_body_timeout 20s;
  63. client_header_timeout 20s;
  64. send_timeout 30s;
  65. include conf.d/*.conf;
  66. }