Nginx 配置文件的优化可以从多个方面进行,以下是一些常见的优化建议:
worker_processes: 设置为 CPU 核心数,以充分利用多核处理器的性能。
worker_processes auto; # 或者设置为 CPU 核心数
worker_connections: 每个工作进程允许的最大并发连接数。
events {
worker_connections 1024; # 可以根据实际情况调整
}
keepalive_timeout: 设置长连接超时时间,减少频繁建立和关闭连接的开销。
http {
keepalive_timeout 65; # 单位秒
}
keepalive_requests: 设置每个长连接允许的最大请求数。
http {
keepalive_requests 100; # 可以根据实际情况调整
}
gzip: 启用 gzip 压缩,减少传输数据的大小。
http {
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}
listen: 设置监听端口和协议。
server {
listen 80;
server_name example.com;
}
server_name: 使用通配符或正则表达式匹配多个域名。
server_name ~^(?<subdomain>.+)\.example\.com$;
root: 设置静态文件的根目录。
location / {
root /var/www/html;
}
try_files: 尝试匹配文件,如果不存在则返回 404。
location / {
try_files $uri $uri/ =404;
}
alias: 用于指定文件的别名路径。
location /static/ {
alias /var/www/static/;
}
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: 启用缓存。
location / {
proxy_cache my_cache;
proxy_pass http://backend;
}
ssl_protocols: 设置 SSL/TLS 协议版本。
server {
listen 443 ssl;
ssl_protocols TLSv1.2 TLSv1.3;
}
ssl_ciphers: 设置加密套件。
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers: 优先使用服务器的加密套件。
ssl_prefer_server_ciphers on;
access_log: 设置访问日志路径和格式。
access_log /var/log/nginx/access.log combined buffer=32k flush=300s;
error_log: 设置错误日志路径和级别。
error_log /var/log/nginx/error.log debug;
combined
或 main
格式,便于分析。通过以上优化,可以显著提升 Nginx 的性能和稳定性。根据实际应用场景和需求,可以进一步调整和优化配置。