Linux 下 Node.js 配置文件与环境优化指南
一 运行时环境与内存优化
{
"scripts": {
"start": "cross-env NODE_ENV=production node app.js",
"dev": "cross-env NODE_ENV=development nodemon app.js"
}
}
NODE_OPTIONS="--max-old-space-size=4096" node app.js
module.exports = {
apps: [{
name: 'myapp',
script: 'app.js',
instances: 'max',
exec_mode: 'cluster',
max_memory_restart: '4G'
}]
};
pm2 start ecosystem.config.js
docker run -m 4g your-app-image
# 或 docker-compose.yml
services:
app:
image: your-app-image
deploy:
resources:
limits:
memory: 4G
二 进程管理与部署配置
npm i -g pm2
pm2 start app.js -i max --name api
pm2 save && pm2 startup
三 多环境与敏感信息管理
require('dotenv').config(); // 公共
const env = process.env.NODE_ENV || 'development';
require('dotenv').config({ path: `.env.${env}` }); // 环境特定
四 版本管理与全局安装优化
export N_PREFIX=$HOME/.n
export PATH=$N_PREFIX/bin:$PATH
export N_NODE_MIRROR=https://npmmirror.com/mirrors/node
n install 20
n use 20
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# ~/.bashrc 或 ~/.zshrc
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm install 20
nvm use 20
nvm alias default 20
五 Linux 系统层面优化
ulimit -n 65535
# 持久化:/etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
net.core.somaxconn = 4096
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
应用:执行sysctl -p使配置生效。