优化CentOS上的Nginx服务器可以从多个方面进行,以下是一些关键的优化步骤和建议:
调整内核参数:
sysctl -w net.core.somaxconn=65535 sysctl -w net.ipv4.tcp_max_syn_backlog=65535 sysctl -w net.ipv4.ip_local_port_range="1024 65535" sysctl -w net.ipv4.tcp_fin_timeout=30 sysctl -w net.ipv4.tcp_tw_reuse=1 sysctl -w net.ipv4.tcp_tw_recycle=1
sysctl -w net.ipv4.tcp_syncookies=1 sysctl -w fs.file-max=65536
网络优化:
echo 3 > /proc/sys/net/ipv4/tcp_fastopen
调整工作进程和连接数:
/etc/nginx/nginx.conf
文件,设置worker_processes
为CPU核心数:worker_processes auto;
events { worker_connections 1024; }
启用Gzip压缩:
http
段添加以下配置启用Gzip压缩:http { gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; }
缓存静态文件:
server
段添加以下配置缓存静态文件:server { location /static/ { root /var/www/; expires 7d; } }
启用HTTP/2协议:
server
段添加以下配置启用HTTP/2协议:server { listen 443 ssl http2; # 其他配置... }
优化SSL/TLS配置:
server
段添加以下配置优化SSL/TLS:server { ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH; ssl_prefer_server_ciphers on; # 其他配置... }
使用多核处理器:
multi_accept
指令让每个工作进程尽可能多地接受连接请求:events { multi_accept on; }
调整缓冲区大小:
http
段添加以下配置调整缓冲区大小:http { client_body_buffer_size 10K; client_header_buffer_size 1k; client_max_body_size 8m; large_client_header_buffers 4 4k; }
优化日志记录:
http { open_log_file_cache max=1000 inactive=20s min_uses=2; }
配置反向代理:
proxy_pass
指令将请求转发到后端服务器:server { listen 80; server_name example.com; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
启用文件缓存:
proxy_cache
或fastcgi_cache
模块缓存频繁请求的静态资源或动态内容。监控和日志记录:
安全加固:
定期更新和升级:
在进行任何更改之前,请确保备份配置文件,并进行适当的测试和性能监测,以确保所做的优化不会导致任何不良影响。