当前位置:   article > 正文

Nginx 实战:nginx优化

Nginx 实战:nginx优化

在实战场景中,对Nginx进行优化可以从多个维度进行,以提升其性能和稳定性,以下是一些常见的优化措施:

1. 工作进程配置

  • 设置合适的worker_processes数量,通常建议设置为服务器物理CPU核心数或逻辑核数。如果服务器有超线程,可以设置为物理核心数的两倍,但也要考虑服务器负载和其他并发因素。
worker_processes auto; # 自动检测可用CPU核心数
# 或者明确指定
worker_processes 4; # 假设服务器有4个CPU核心
  • 1
  • 2
  • 3

2. 工作进程亲和性

  • 绑定工作进程到特定的CPU核心,减少CPU切换带来的开销。
worker_cpu_affinity 01 03 10 11; # 对于4核CPU,绑定两个进程到不同核心
  • 1

3. 连接处理

  • 调整每个工作进程的最大连接数,通过worker_connections配置项。
events {
    worker_connections 10240; # 根据系统资源调整最大连接数
}
  • 1
  • 2
  • 3

4. 文件描述符限制

  • 确保系统的最大打开文件描述符数 (ulimit -n) 大于等于Nginx的worker_connections设置。
# 在系统级别增加文件描述符限制
ulimit -n 65535
  • 1
  • 2

5. 缓存优化

  • 对静态资源启用缓存,比如设置过期时间或使用缓存代理模块。
location ~* \.(jpg|jpeg|gif|png|ico|css|js)$ {
    expires 30d; # 设置静态资源30天内有效,避免频繁请求
    add_header Cache-Control public;
}
  • 1
  • 2
  • 3
  • 4

6. Gzip压缩

  • 启用gzip压缩以减小响应体积,加快网络传输速度。
http {
    gzip on;
    gzip_comp_level 6; # 压缩级别,默认1-9,数值越大压缩率越高,CPU占用也相应增加
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}
  • 1
  • 2
  • 3
  • 4
  • 5

7. TCP优化

  • 调整TCP相关参数,如TCP长连接(keepalive)、timeouts等。
http {
    keepalive_timeout 60s; # 设置保持连接超时时间
    client_body_timeout 10s; # 请求体读取超时时间
    send_timeout 10s; # 数据发送超时时间
}
  • 1
  • 2
  • 3
  • 4
  • 5

8. 负载均衡优化

  • 如果Nginx作为反向代理或负载均衡器,优化upstream模块配置,如健康检查、轮询策略等。

9. SSL/TLS优化

  • 使用最新版本的TLS协议,禁用弱加密套件,启用session复用和OCSP Stapling。
ssl_protocols TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

10. 日志及错误日志等级

  • 控制日志级别,只记录必要的错误信息,减少磁盘I/O。
error_log /var/log/nginx/error.log error; # 只记录错误信息
access_log /var/log/nginx/access.log combined buffer=16k flush=1m; # 缓冲区大小和刷新频率
  • 1
  • 2

11. 监控与调优

  • 定期查看系统和Nginx的监控数据,如CPU、内存、带宽使用,以及Nginx的请求数、连接数等,根据实际情况动态调整配置。

总之,Nginx的优化是个持续的过程,需要结合实际应用场景、硬件资源和业务需求来进行细致的调优。同时,应该密切关注Nginx官方文档以及业界最佳实践的更新,以便随时应用最新的优化策略。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/311482
推荐阅读
相关标签
  

闽ICP备14008679号