优化Nginx在CentOS上的资源占用可以从多个方面入手,包括内核参数调整、Nginx配置优化、文件描述符限制、静态资源服务等。以下是详细的优化措施:
调整TCP连接参数:
net.ipv4.tcp_max_tw_buckets = 6000
:减少TIME_WAIT状态的连接占用。net.ipv4.tcp_tw_recycle = 1
(官方不建议修改):快速回收TIME_WAIT状态的连接。net.ipv4.tcp_tw_reuse = 1
:启用TIME_WAIT状态的连接重用。net.ipv4.tcp_syncookies = 1
:防止SYN flood攻击。调整文件描述符和连接数限制:
编辑 /etc/sysctl.conf
文件,增加如下内容:
fs.file-max = 10000000
fs.nr_open = 10000000
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
应用配置:
sysctl -p
调整工作进程和连接数:
worker_processes auto;
:根据CPU核心数自动设置工作进程数。worker_connections 1024;
:每个工作进程最多处理1024个连接。启用高效传输模式:
sendfile on;
:启用sendfile,提升传输效率。tcp_nopush on;
:对于大文件传输,采用tcp_nopush多个包一起发送。启用Gzip压缩:
减少网络传输消耗:
http {
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}
静态资源缓存:
缓存静态文件,减少对后端服务器的请求:
server {
location ~* \.(jpg|jpeg|png|gif|ico|css|js|pdf)$ {
expires 30d;
access_log off;
}
}
启用HTTP/2协议:
利用多路复用和头部压缩提高页面加载速度:
server {
listen 443 ssl http2;
}
优化SSL/TLS:
合理配置SSL/TLS协议,提高安全性和性能:
server {
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
ssl_prefer_server_ciphers on;
}
限制请求速率和连接数:
防止恶意请求占用资源:
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
location / {
limit_req zone=one burst=5;
}
监控和日志管理:
通过这些优化措施,可以显著降低Nginx在CentOS上的资源占用,提高其性能和稳定性。根据实际应用场景,可以灵活调整配置,以达到最佳效果。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>