优化Nginx配置以提升网站性能涉及多个方面,包括调整缓存设置、优化连接数、压缩传输内容等。以下是一些常见的优化建议:
worker_processes: 设置为CPU核心数,以充分利用硬件资源。
worker_processes auto;
worker_connections: 每个工作进程允许的最大连接数。
events {
worker_connections 1024;
}
proxy_cache_path: 设置缓存路径和参数。
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: 在server或location块中使用缓存。
location / {
proxy_cache my_cache;
proxy_pass http://backend;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
}
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
location块来处理静态文件,并设置缓存。location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public";
}
keepalive_timeout: 设置长连接超时时间。
keepalive_timeout 65;
multi_accept: 允许一个连接上接受多个请求。
multi_accept on;
使用OCSP Stapling减少SSL握手时间。
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
启用HTTP/2以提高传输效率。
listen 443 ssl http2;
access_log off;
error_log /var/log/nginx/error.log debug;
限制请求体大小以防止DDoS攻击。
client_max_body_size 50M;
使用limit_req_zone和limit_req来限制请求速率。
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
location / {
limit_req zone=one burst=5 nodelay;
}
upstream模块进行负载均衡。upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
nginx -t检查配置文件的语法。nginx -s reload重新加载配置而不中断服务。access_log和error_log进行日志分析。通过以上优化措施,可以显著提升Nginx的性能和网站的响应速度。记得在每次修改配置后都要进行测试,确保配置的正确性和稳定性。