首页主机资讯nginx如何提升网站性能

nginx如何提升网站性能

时间2025-12-03 13:26:03发布访客分类主机资讯浏览1275
导读:Nginx性能优化实战清单 核心配置优化 进程与连接 设置工作进程数为 CPU 核心数:worker_processes auto; 提升单进程并发:worker_connections 10240;(结合内存与负载评估) Linux...

Nginx性能优化实战清单

核心配置优化

  • 进程与连接
    • 设置工作进程数为 CPU 核心数:worker_processes auto;
    • 提升单进程并发:worker_connections 10240; (结合内存与负载评估)
    • Linux 使用高效事件模型:use epoll; multi_accept on;
    • 提升文件描述符上限:worker_rlimit_nofile 65535; 并在系统层设置(如 limits.conf)
  • 传输与协议
    • 启用零拷贝与合并发送:sendfile on; tcp_nopush on; tcp_nodelay on;
    • 开启长连接复用:keepalive_timeout 65; keepalive_requests 100;
  • 压缩与缓冲
    • 启用压缩并控制开销:gzip on; gzip_comp_level 6; gzip_vary on; gzip_types text/plain text/css application/javascript application/json;
    • 合理缓冲减少磁盘 I/O:client_body_buffer_size 10K; client_header_buffer_size 1k; client_max_body_size 8m; large_client_header_buffers 4 4k;
  • 超时控制
    • 收紧请求阶段超时:client_body_timeout 12; client_header_timeout 12; send_timeout 10;
  • 日志
    • 缓冲写入降低 I/O:access_log /var/log/nginx/access.log combined buffer=32k flush=300s;
    • 静态资源可关闭访问日志:access_log off; (权衡可观测性)

缓存与内容分发

  • 反向代理缓存
    • 定义缓存区与路径:proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
    • 启用与有效期:proxy_cache my_cache; proxy_cache_valid 200 1h;
  • 静态资源浏览器缓存
    • 设置长期缓存与不可变策略:location ~ .(js|css|png|jpg|jpeg|gif|ico)$ { expires 1y; add_header Cache-Control “public, immutable”; } *
  • 静态资源服务优化
    • 单独 location 并关闭日志:location /static/ { alias /var/www/static/; expires 1y; access_log off; }
  • 文件元数据缓存
    • 减少 open/stat 开销:open_file_cache max=1000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors on;
  • 传输压缩
    • 对文本类动态响应启用压缩:gzip on; gzip_types text/plain text/css application/json application/javascript;

负载均衡与健康检查

  • 上游与算法
    • 基础轮询与权重:upstream backend { server b1 weight=5; server b2; server b3 backup; }
    • 最少连接:least_conn; 或会话保持:ip_hash;
  • 被动健康检查
    • 失败隔离:server b1 max_fails=3 fail_timeout=30s;
  • 主动健康检查
    • 开源版可用 nginx_upstream_check_module;商业版 NGINX Plus 原生支持主动健康检查

安全与限流

  • 连接与请求限流
    • 基于 IP 的连接与速率限制:limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m; limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=5r/s;
    • 在关键路径应用:limit_conn conn_limit_per_ip 10; limit_req zone=req_limit_per_ip burst=20 nodelay;
  • 协议与加密
    • 启用 HTTP/2listen 443 ssl http2;
    • 安全协议与套件:ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512; ssl_prefer_server_ciphers on;
    • 会话复用:ssl_session_cache shared:SSL:10m; ssl_session_timeout 1d;
    • 强化安全头:add_header Strict-Transport-Security “max-age=31536000; includeSubDomains” always;
  • 防盗链
    • 基于 Referer 控制:*valid_referers none blocked example.com .example.com; if ($invalid_referer) { return 403; }

操作系统与上线流程

  • 内核网络参数
    • 提升连接队列与复用:net.core.somaxconn = 65535; net.ipv4.tcp_max_syn_backlog = 65535; net.ipv4.tcp_tw_reuse = 1; net.ipv4.tcp_fin_timeout = 15;
  • 文件句柄与系统限制
    • 提升进程可打开文件数:worker_rlimit_nofile 65535; 并在 /etc/security/limits.conf 设置用户级上限
  • 上线与验证
    • 语法检查与热加载:nginx -t & & nginx -s reload
  • 监控与容量
    • 关注指标:连接数、每秒请求数、响应时延、缓存命中率、带宽与后端错误率;结合压测逐步调优参数与架构(如引入 CDN、静态与动态分离、读写分离/分片)

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: nginx如何提升网站性能
本文地址: https://pptw.com/jishu/762300.html
Debian中如何检测僵尸进程 Debian僵尸进程是什么导致的

游客 回复需填写必要信息