下面给你一个在 CentOS 上部署 Node.js 项目的完整常见流程,从环境准备到上线访问,适用于 CentOS 7 / 8 / Stream。
sudo yum update -y
sudo yum install -y curl wget git
以 Node.js 18 为例(可换成 20):
curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
sudo yum install -y nodejs
验证:
node -v
npm -v
git clone https://github.com/your/project.git
cd project
scp -r ./project user@ip:/home/user/project
cd project
npm install
npm run build # 如果是前端项目(Vue / React)
node app.js
# 或
npm start
确认项目能正常访问(默认端口如 3000)
sudo npm install -g pm2
pm2 start app.js
或指定名称:
pm2 start app.js --name my-node
pm2 list
pm2 logs
pm2 restart my-node
pm2 stop my-node
pm2 startup
pm2 save
sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent
sudo firewall-cmd --reload
查看:
sudo firewall-cmd --list-ports
sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx
sudo vim /etc/nginx/conf.d/node.conf
示例:
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
sudo nginx -t
sudo systemctl restart nginx
sudo yum install -y certbot python3-certbot-nginx
sudo certbot --nginx
✅ 端口访问不了
0.0.0.0✅ npm install 慢
npm config set registry https://registry.npmmirror.com
✅ 内存不足
pm2如果你愿意,可以告诉我:
我可以直接给你一套可复制的命令方案。