摆烂... 配置NginxZuo高可用可依同过搭建主备模式、 使用Keepalived实现高可用、利用Nginx的Upstream模块实现负载均衡三种方法实现。 搭建......
Nginx性嫩优化实战清单
核心配置优化
- 进程与连接
- 设置工作进程数为 CPU 核心数:worker_processes auto;
- 提升单进程并发:worker_connections 10240;
- Linux 使用高效事件模型:use epoll; multi_accept on;
- 提升文件描述符上限:worker_rlimit_nofile 65535; 并在系统层设置
- 传输与协议
- 启用零拷贝与合并发送:sendfile on; tcpnopush on; tcpnodelay on;
- 开启长连接复用:keepalivetimeout 65; keepaliverequests 100;
- 压缩与缓冲
- 启用压缩并控制开销:gzip on; gzipcomplevel 6; gzipvary on; gziptypes text/plain text/css application/javascript application/json;
- 合理缓冲减少磁盘 I/O:clientbodybuffersize 10K; clientheaderbuffersize 1k; clientmaxbodysize 8m; largeclientheaderbuffers 4 4k;
- 超时控制
- 收紧请求阶段超时:clientbodytimeout 12; clientheadertimeout 12; sendtimeout 10;
- 日志
- 缓冲写入降低 I/O:accesslog /var/log/nginx/ 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 ~ .$ { expires 1y; addheader Cache-Control “public, immutable”; }*
- 静态资源服务优化
- 单独 location 并关闭日志:location /static/ { alias /var/www/static/; expires 1y; accesslog off; }
- 文件元数据缓存
- 减少 open/stat 开销:openfilecache max=1000 inactive=20s; openfilecachevalid 30s; openfilecacheminuses 2; openfilecacheerrors 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 maxfails=3 failtimeout=30s;
- 主动健康检查
- 开源版可用 nginxupstreamcheck_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;
- 平安协议与套件:sslprotocols TLSv1.2 TLSv1.3; sslciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512; sslpreferserverciphers on;
- 会话复用:sslsessioncache shared:SSL:10m; sslsessiontimeout 1d;
- 强化平安头:addheader Strict-Transport-Security “max-age=31536000; includeSubDomains” always;
- 防盗链
- 基于 Referer 控制:valid_referers none blocked .; if { return 403; }
操作系统与上线流程
- 内核网络参数
- 提升连接队列与复用: = 65535; _max_syn_backlog = 65535; _tw_reuse = 1; _fin_timeout = 15;
- 文件句柄与系统限制
- 提升进程可打开文件数:workerrlimitnofile 65535; 并在 /etc/security/ 设置用户级上限
- 上线与验证
- 语法检查与热加载:nginx -t && nginx -s reload
- 监控与容量
- 关注指标:连接数、 每秒请求数、响应时延、缓存命中率、带宽与后端错误率;结合压测逐步调优参数与架构
嗯,堪完了这些,感觉是不是头者阝大了?别急,这些只是冰山一角,真正的优化还需要根据你的具体情况进行调整。不过只要你掌握了这些基础,相信你的网站访问速度和用户体验一定会得到大大的提升!