Node.js 在 Debian 的网络通信优化指南
一 架构与代理层优化
二 应用层代码与运行时优化
三 操作系统与内核网络参数
四 监控 压测与渐进式落地
五 关键配置示例
Nginx 反向代理与 HTTP/2 片段
server {
listen 443 ssl http2;
ssl_certificate /etc/ssl/certs/your_domain.crt;
ssl_certificate_key /etc/ssl/private/your_domain.key;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Connection "";
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;
proxy_buffering on;
proxy_buffer_size 16k;
proxy_buffers 64 16k;
# 上游长连接复用
keepalive 32;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires 1y;
add_header Cache-Control "public, immutable";
access_log off;
}
}
Node.js 启用压缩与缓存示例
const express = require('express');
const compression = require('compression');
const apicache = require('apicache');
const app = express();
const cache = apicache.middleware;
app.use(compression());
app.use('/api/data', cache('5 minutes'), (req, res) => {
// 业务逻辑
res.json({ ok: true });
});
app.listen(3000, () => console.log('Server on :3000'));
系统内核参数示例(/etc/sysctl.d/99-tuning.conf)
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 15
执行:sudo sysctl -p /etc/sysctl.d/99-tuning.conf