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