优化Nginx配置可以显著提升Ubuntu服务器的性能。以下是一些常见的优化建议:
Nginx的工作进程数应该与CPU核心数相匹配,以充分利用硬件资源。
worker_processes auto; # 或者设置为CPU核心数
增加每个工作进程可以处理的连接数。
events {
worker_connections 1024; # 可以根据需要调整
}
Keepalive可以减少TCP连接的建立和关闭次数,提高性能。
http {
keepalive_timeout 65; # 保持连接的时间(秒)
keepalive_requests 100; # 每个连接允许的最大请求数
}
Gzip压缩可以减少传输数据的大小,加快页面加载速度。
http {
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 256;
}
对于静态文件,可以设置缓存以减少服务器负载。
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public";
}
如果可能,使用CDN(内容分发网络)来加速静态资源的加载。
如果使用HTTPS,优化SSL/TLS配置可以提高安全性并减少延迟。
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
禁用Nginx中不需要的模块可以减少内存使用和潜在的安全风险。
sudo nginx -V
查看配置文件中的--with-选项,禁用不需要的模块。
减少日志级别和日志文件的大小可以减少磁盘I/O。
error_log /var/log/nginx/error.log debug;
access_log /var/log/nginx/access.log main buffer=32k flush=300s;
使用监控工具(如Prometheus和Grafana)来监控Nginx的性能,并根据监控数据进行调优。
以下是一个示例的Nginx配置文件,结合了上述优化建议:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
keepalive_requests 100;
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 256;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
error_log /var/log/nginx/error.log debug;
access_log /var/log/nginx/access.log main buffer=32k flush=300s;
}
通过这些优化措施,可以显著提升Nginx在Ubuntu服务器上的性能。记得在每次修改配置文件后,重启Nginx服务以应用更改:
sudo systemctl restart nginx