Ubuntu上Nginx性能优化有哪些技巧
导读:Ubuntu上Nginx性能优化实用技巧 一 基础配置优化 调整并发模型:将worker_processes设为与CPU核心数一致(如4核设为4),充分利用多核;在events中提升worker_connections(如4096)以扩大...
Ubuntu上Nginx性能优化实用技巧
一 基础配置优化
- 调整并发模型:将worker_processes设为与CPU核心数一致(如4核设为4),充分利用多核;在events中提升worker_connections(如4096)以扩大并发连接容量。示例:
worker_processes auto; # 或设为 CPU 核心数 events { worker_connections 4096; multi_accept on; } - 开启高效传输:启用**sendfile on; 减少用户态与内核态拷贝;与tcp_nopush on; **配合,在开启sendfile时尽量合并包发送,提高带宽利用率。
- 长连接复用:在http/server/location中配置keepalive_timeout 65; keepalive_requests 100; ,复用后端或客户端连接,降低握手开销。
二 内容传输与压缩
- 启用Gzip压缩:对文本类资源进行压缩以减少传输体积,建议适度提高压缩级别并限制最小压缩长度。示例:
gzip on; gzip_comp_level 5; gzip_min_length 256; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; gzip_vary on; gzip_proxied any; - 开启静态资源缓存与协商:启用ETag以加速缓存验证;对静态文件设置合适的Cache-Control/Expires头,减少重复传输。
三 反向代理与缓存
- 反向代理缓存:为后端动态内容设置缓存区,降低后端压力、提升响应。示例:
http { proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; server { location / { proxy_cache my_cache; proxy_pass http://backend; } } } - 连接复用与头部优化:为代理连接启用keepalive(如upstream中配置keepalive 32; ),减少频繁建连;按需设置**proxy_buffering on; **与合适的缓冲参数,平滑突发流量。
四 启用HTTP/2与TLS
- 开启HTTP/2:在listen 443 ssl http2;
中启用HTTP/2以多路复用提升并发与首包速度;同时确保正确配置SSL/TLS证书(如Let’s Encrypt)。示例:
server { listen 443 ssl http2; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # 其他SSL安全参数... } - 说明:HTTP/2通常运行在TLS之上,启用后可在同一连接并行传输多个请求,减少队头阻塞。
五 系统与运维实践
- 文件描述符限制:提升进程可打开的文件描述符上限,编辑**/etc/security/limits.conf**:
* soft nofile 65535 * hard nofile 65535 root soft nofile 65535 root hard nofile 65535 - TCP/IP栈优化:按需调整内核网络参数(示例为通用高并发思路,生产环境请结合压测微调):
net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_max_syn_backlog = 4096 net.core.somaxconn = 4096 - 日志与观测:实时查看error.log定位瓶颈与异常(如sudo tail -f /var/log/nginx/error.log);使用GoAccess分析访问日志,示例:
sudo apt install goaccess goaccess /var/log/nginx/access.log -f COMMON -o html > /var/www/html/goaccess.html - 平滑生效与压测:修改配置后使用sudo systemctl reload nginx平滑重载;用httperf等工具进行压测与回归验证,逐步调优参数。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu上Nginx性能优化有哪些技巧
本文地址: https://pptw.com/jishu/749368.html
