一、基础配置调优
1.1 工作进程配置
1 | worker_processes auto; # 根据CPU核心数自动设置工作进程数 |
1.2 事件模型优化
1 | events { |
1.3 网络连接优化
1 | sendfile on; # 启用零拷贝发送文件,降低CPU消耗 |
二、内存和缓冲区调优
2.1 缓冲区设置
1 | client_header_buffer_size 4k; # 请求头缓冲区大小 |
2.2 文件缓存配置
1 | open_file_cache max=100000 inactive=20s; # 打开文件缓存数量及失效时间 |
三、压缩优化
3.1 Gzip压缩
1 | gzip on; # 启用gzip压缩 |
3.2 Brotli压缩(模块支持)
1 | brotli on; # 启用Brotli压缩 |
四、SSL/TLS优化
4.1 SSL配置优化
1 | ssl_protocols TLSv1.2 TLSv1.3; # 启用安全的TLS协议版本 |
4.2 HTTP/2配置
1 | # 在server块中监听443端口并开启HTTP/2 |
五、负载均衡和代理优化
5.1 上游服务器配置
1 | upstream backend { |
5.2 代理配置优化
1 | location / { |
六、缓存策略
6.1 静态资源缓存
1 | location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { |
6.2 代理缓存
1 | proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; |
七、安全加固
7.1 基础安全配置
1 | server_tokens off; # 隐藏Nginx版本信息,降低攻击风险 |
7.2 请求限制
1 | limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s; # API接口限速 |
八、监控和日志
8.1 访问日志优化
1 | log_format main '$remote_addr - $remote_user [$time_local] "$request" ' |
8.2 Nginx运行状态
1 | location /nginx_status { |
九、最佳实践总结
- 合理设置
worker_processes,优先auto; - 按业务调优
缓冲区和keepalive; Gzip压缩开启,Brotli可选;- 使用
HTTP/2,提升性能; - 合理配置
缓存策略; - 限流、限制连接数保障服务稳定;
- 配置日志、开启状态监控;
- 定期压力测试,按需动态调整配置。