优化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
模块缓存频繁请求的静态资源或动态内容。监控和日志记录:
安全加固:
定期更新和升级:
在进行任何更改之前,请确保备份配置文件,并进行适当的测试和性能监测,以确保所做的优化不会导致任何不良影响。