在CentOS上部署Node.js应用通常涉及以下几个步骤:
安装Node.js: 首先,你需要在CentOS系统上安装Node.js。你可以使用NodeSource二进制分发库来安装特定版本的Node.js。
# 导入NodeSource库的GPG密钥
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
# 安装Node.js
sudo yum install -y nodejs
上面的命令会安装Node.js 14.x版本。如果你需要其他版本,可以将setup_14.x替换为相应的版本号。
上传你的Node.js应用: 使用SCP、SFTP或其他文件传输方法将你的Node.js应用上传到服务器。
安装依赖: 在你的应用目录中运行以下命令来安装所有必要的npm包。
npm install
配置环境变量:
如果你的应用需要特定的环境变量(如数据库连接字符串、API密钥等),请确保在服务器上设置这些变量。你可以将这些变量添加到~/.bashrc或/etc/environment文件中。
运行你的应用:
使用node命令来启动你的应用。
node app.js
其中app.js是你的Node.js应用的入口文件。
使用进程管理器: 为了确保你的应用在后台运行并且在服务器重启后自动启动,你可以使用进程管理器,如PM2。
# 全局安装PM2
sudo npm install pm2 -g
# 使用PM2启动你的应用
pm2 start app.js
# 设置PM2开机自启
pm2 startup
pm2 save
配置防火墙: 如果你的应用需要从外部访问,确保你的防火墙允许相应的端口。
sudo firewall-cmd --permanent --zone=public --add-port=3000/tcp
sudo firewall-cmd --reload
上面的命令会打开3000端口,如果你的应用运行在不同的端口,请相应地更改端口号。
使用Nginx作为反向代理(可选): 为了提高性能和安全性,你可以使用Nginx作为Node.js应用的反向代理。
# 安装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
sudo vi /etc/nginx/conf.d/default.conf
# 添加以下内容作为示例
server {
listen 80;
server_name yourdomain.com; # 替换为你的域名或公网IP
location / {
proxy_pass http://localhost:3000; # Node.js应用运行的端口
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
按照这些步骤,你应该能够在CentOS上成功部署你的Node.js应用。记得根据你的具体需求调整配置。