在CentOS系统上部署Node.js项目,可以按照以下步骤进行:
首先,你需要在CentOS上安装Node.js。你可以使用NodeSource提供的Node.js二进制分发库来安装特定版本的Node.js。
添加NodeSource仓库:
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
安装Node.js:
sudo yum install -y nodejs
验证安装:
node -v
npm -v
PM2是一个进程管理器,可以帮助你管理和保持Node.js应用程序在线。
安装PM2:
sudo npm install pm2 -g
验证安装:
pm2 -v
假设你的项目已经准备好,并且有一个package.json
文件。
克隆项目到服务器:
git clone <你的项目仓库URL>
cd <项目目录>
安装项目依赖:
npm install
启动项目:
pm2 start app.js --name <你的应用名称>
其中,app.js
是你的入口文件,<你的应用名称>
是你给应用起的名字。
你可以使用PM2的配置文件来管理你的应用。
创建一个PM2配置文件(例如ecosystem.config.js
):
module.exports = {
apps: [{
name: 'my-app',
script: 'app.js',
instances: 'max',
exec_mode: 'cluster',
autorestart: true,
watch: false,
max_memory_restart: '1G',
env: {
NODE_ENV: 'development'
},
env_production: {
NODE_ENV: 'production'
}
}]
};
使用配置文件启动应用:
pm2 start ecosystem.config.js --env production
为了提高性能和安全性,你可以使用Nginx作为反向代理。
安装Nginx:
sudo yum install nginx -y
启动并启用Nginx服务:
sudo systemctl start nginx
sudo systemctl enable nginx
配置Nginx反向代理:
编辑Nginx配置文件(通常位于/etc/nginx/nginx.conf
或/etc/nginx/conf.d/default.conf
):
server {
listen 80;
server_name <你的域名或IP>;
location / {
proxy_pass http://localhost:3000; # 假设你的Node.js应用运行在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;
}
}
重启Nginx服务:
sudo systemctl restart nginx
你可以使用PM2的命令来监控和管理你的Node.js应用。
查看应用状态:
pm2 status
查看日志:
pm2 logs <你的应用名称>
停止应用:
pm2 stop <你的应用名称>
重启应用:
pm2 restart <你的应用名称>
通过以上步骤,你就可以在CentOS系统上成功部署Node.js项目了。