在CentOS上部署Node.js应用涉及几个步骤,包括安装Node.js、设置环境变量、上传应用代码、安装依赖项以及启动应用。以下是一个详细的步骤指南:
你可以使用多种方法在CentOS上安装Node.js,包括使用包管理器、NodeSource或直接下载安装。
NodeSource提供了一个方便的脚本来安装特定版本的Node.js。以下是安装Node.js 14.x的示例:
# 添加NodeSource仓库
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
# 安装Node.js
sudo yum install -y nodejs
安装完成后,验证Node.js和npm是否正确安装:
node -v
npm -v
如果你需要设置环境变量,可以将它们添加到~/.bashrc或/etc/profile.d/目录下的一个脚本文件中。
例如,将以下内容添加到~/.bashrc:
export NODE_ENV=production
然后重新加载配置文件:
source ~/.bashrc
你可以使用scp、rsync或通过Git将你的Node.js应用代码上传到CentOS服务器。
scp -r /path/to/your/nodejs-app user@your-server:/path/to/deploy
进入你的应用目录并安装依赖项:
cd /path/to/deploy/nodejs-app
npm install
你可以使用多种方法启动Node.js应用,包括直接使用node命令、使用pm2进行进程管理或使用systemd服务。
node命令启动node app.js
pm2启动pm2是一个进程管理工具,可以方便地管理Node.js应用。
首先安装pm2:
sudo npm install -g pm2
然后使用pm2启动你的应用:
pm2 start app.js --name my-app
你可以使用以下命令查看应用状态:
pm2 status
创建一个systemd服务文件:
sudo nano /etc/systemd/system/my-app.service
添加以下内容:
[Unit]
Description=My Node.js App
After=network.target
[Service]
ExecStart=/usr/bin/node /path/to/deploy/nodejs-app/app.js
Restart=always
User=your-user
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
保存并退出编辑器,然后启动服务:
sudo systemctl start my-app
启用服务开机自启动:
sudo systemctl enable my-app
确保你的防火墙允许HTTP/HTTPS流量。如果你使用的是firewalld,可以添加以下规则:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
现在,你应该可以通过浏览器访问你的Node.js应用了。默认情况下,应用会运行在http://your-server:3000。
通过以上步骤,你可以在CentOS上成功部署Node.js应用。根据你的具体需求,可能还需要进行其他配置和优化。