在CentOS環境下優化Node.js性能,可以從以下幾個方面入手:
確保你使用的是最新版本的Node.js,因為新版本通常包含性能改進和bug修復。
sudo yum install -y nodejs
長期支持(LTS)版本通常更穩定,性能也更好。
sudo yum install -y nodejs-lts
默認情況下,Node.js進程的內存限制是1.5GB。你可以通過設置環境變量來增加這個限制。
export NODE_OPTIONS="--max_old_space_size=4096"
PM2是一個進程管理器,可以幫助你管理和優化Node.js應用。
sudo npm install pm2 -g
pm2 start app.js --name my-app
如果你的應用支持HTTP/2,啟用它可以顯著提高性能。
const http2 = require('http2');
const fs = require('fs');
const server = http2.createSecureServer({
key: fs.readFileSync('server.key'),
cert: fs.readFileSync('server.crt')
});
server.on('stream', (stream, headers) => {
stream.respond({
'content-type': 'text/html',
':status': 200
});
stream.end('<h1>Hello World</h1>');
});
server.listen(8443);
合理使用緩存可以減少數據庫查詢次數,提高響應速度。
const express = require('express');
const app = express();
app.use(express.static('public'));
app.get('/data', (req, res) => {
const cachedData = req.cache.get('data');
if (cachedData) {
return res.send(cachedData);
}
const data = fetchDataFromDatabase();
req.cache.set('data', data, 60); // 緩存60秒
res.send(data);
});
將靜態資源放在CDN上可以減少服務器負載,提高用戶訪問速度。
確保你的數據庫查詢是高效的,可以使用索引、優化查詢語句等方法。
使用Nginx或Apache作為反向代理可以提高性能和安全性。
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
使用監控工具(如Prometheus、Grafana)和日志系統(如ELK Stack)來監控應用性能和排查問題。
通過以上方法,你可以在CentOS環境下顯著提高Node.js應用的性能。