在CentOS上优化Nginx的内存使用可以通过以下步骤进行:
调整工作进程(Worker Processes):
/etc/nginx/nginx.conf。worker_processes指令,设置其值为可用CPU内核的数量。可以使用auto关键字让Nginx自动检测CPU核心数。worker_processes auto;
调整工作连接数(Worker Connections):
events块,并设置worker_connections指令。这个值乘以worker_processes的值就是Nginx可以同时处理的最大连接数。events {
worker_connections 1024; # 可以根据需要调整这个值
}
启用TCP nodelay和TCP nopush:
http {
...
tcp_nopush on;
tcp_nodelay on;
...
}
使用keepalive:
http {
...
keepalive_timeout 65; # 保持连接的超时时间(秒)
keepalive_requests 100; # 每个连接允许的最大请求数
...
}
压缩传输内容:
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;
...
}
优化缓存:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
server {
...
location / {
...
proxy_cache my_cache;
proxy_pass http://backend;
...
}
...
}
监控和调整:
top, htop, nginx -t, 和 nginx -s reload来监控Nginx的性能和内存使用情况。升级Nginx:
系统级优化:
vm.swappiness,以减少交换(swap)的使用。请记住,任何配置更改都应该在测试环境中进行,并且在应用到生产环境之前应该进行充分的测试。