在CentOS上部署Node.js项目涉及几个步骤,包括安装Node.js、设置环境变量、上传项目文件、安装依赖项以及启动项目。以下是一个详细的步骤指南:
你可以使用NodeSource的安装脚本来安装特定版本的Node.js。以下是安装Node.js 14.x的示例:
# 安装NodeSource Node.js 14.x 源
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
# 安装Node.js和npm
sudo yum install -y nodejs
安装完成后,验证Node.js和npm是否正确安装:
node -v
npm -v
如果你需要设置环境变量,可以将它们添加到~/.bashrc或/etc/profile文件中。例如:
export NODE_ENV=production
export PATH=$PATH:/usr/local/bin/node
然后重新加载配置文件:
source ~/.bashrc
你可以使用scp、rsync或其他文件传输工具将项目文件上传到CentOS服务器。例如,使用scp:
scp -r /path/to/your/project user@your_server_ip:/path/to/deploy
进入项目目录并安装依赖项:
cd /path/to/deploy/your_project
npm install --production
为了更好地处理HTTP请求,你可以使用Nginx作为反向代理。首先安装Nginx:
sudo yum install -y epel-release
sudo yum install -y nginx
启动并启用Nginx服务:
sudo systemctl start nginx
sudo systemctl enable nginx
配置Nginx以代理Node.js应用。编辑Nginx配置文件(通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf):
server {
listen 80;
server_name your_server_ip;
location / {
proxy_pass http://localhost: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:
sudo npm install -g pm2
使用pm2启动你的Node.js应用:
pm2 start app.js --name your_project_name
你可以使用pm2 list查看所有运行的进程,并使用pm2 logs查看日志。
如果你使用的是CentOS 7或更高版本,默认情况下防火墙是启用的。你需要允许HTTP(端口80)和HTTPS(端口443)流量:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
为了提高安全性,你可以使用Let’s Encrypt来配置SSL证书。首先安装Certbot:
sudo yum install -y certbot python2-certbot-nginx
运行Certbot来获取并配置SSL证书:
sudo certbot --nginx -d your_domain.com
按照提示完成配置。
通过以上步骤,你应该能够在CentOS上成功部署你的Node.js项目。