优化Linux Nginx服务器性能可以从多个方面入手,包括硬件配置、Nginx配置、系统调优等。以下是一些常见的优化建议:
调整worker进程数:
worker_processes auto; # 或者设置为CPU核心数
调整worker连接数:
events {
worker_connections 1024; # 根据实际情况调整
}
启用keepalive:
http {
keepalive_timeout 65;
keepalive_requests 100;
}
启用gzip压缩:
http {
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}
静态文件缓存:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public";
}
反向代理优化:
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
SSL/TLS优化:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
调整文件描述符限制:
ulimit -n 65535
并在/etc/security/limits.conf中添加:
* soft nofile 65535
* hard nofile 65535
调整TCP参数:
编辑/etc/sysctl.conf,添加或修改以下内容:
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
然后运行sysctl -p使更改生效。
调整Nginx日志级别: 如果不需要详细的访问日志,可以降低日志级别以减少I/O操作:
error_log /var/log/nginx/error.log crit;
access_log /var/log/nginx/access.log combined buffer=32k flush=300s;
使用Nginx Plus: 如果预算允许,可以考虑使用Nginx Plus,它提供了更多的性能优化功能和实时监控。
通过以上这些方法,可以显著提高Nginx服务器的性能。不过,具体的优化策略需要根据实际的应用场景和硬件配置来调整。