赞
踩
Nginx性能优化涵盖了许多方面,以下是一些关键的实战优化策略:
worker_processes
,通常设为服务器的物理CPU核心数,或者在多核处理器上设置为CPU核心数的倍数(如超线程技术开启的情况下)。worker_processes auto; # 自动检测CPU核心数
epoll
在Linux 2.6+内核中效率较高,kqueue
在FreeBSD和macOS中表现优秀。events {
use epoll; # 对于Linux系统
multi_accept on; # 启用一次accept()接收多个连接
worker_connections 1024; # 每个工作进程的最大连接数
}
client_body_buffer_size
和proxy_buffers
等设置。http {
client_body_buffer_size 16k; # 根据上传文件大小等情况调整
proxy_buffers 4 32k; # 分配给代理请求的缓冲区
proxy_buffer_size 8k; # 用于临时存储响应头的缓冲区大小
}
http {
keepalive_timeout 60s; # 设置空闲连接保持时间
}
location /static/ {
expires 30d;
add_header Cache-Control public;
}
# 或者使用proxy_cache模块进行动态内容缓存
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
location / {
proxy_pass http://backend;
proxy_cache my_cache;
proxy_cache_key "$scheme$request_method$host$request_uri";
proxy_cache_valid 200 302 1h;
proxy_cache_valid 404 1m;
}
upstream backend {
server backend1.example.com weight=1 max_fails=3 fail_timeout=30s;
server backend2.example.com:8080 backup;
# 健康检查(某些版本的Nginx可能需要额外模块支持)
# check interval=5000 rise=2 fall=5 timeout=1000;
}
gzip on;
gzip_types text/plain application/x-javascript text/css text/xml application/xml application/json;
gzip_comp_level 6; # 压缩级别,范围1-9,默认1,数值越大压缩程度越高,但CPU消耗也会增大
gzip_vary on; # 提供给代理服务器判断是否启用Gzip压缩的依据
gzip_min_length 256; # 小于此长度的响应体不压缩
listen 443 ssl http2;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_ecdh_curve secp384r1; # 使用更强的椭圆曲线
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
持续监控系统性能,根据负载情况和性能瓶颈进行针对性优化,并确保Nginx与其他服务(如PHP-FPM、数据库等)的交互也是优化的一部分。此外,及时升级Nginx到最新稳定版,以便利用最新的性能改进和安全修复。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。