在CentOS上部署Node.js应用涉及几个步骤,包括安装Node.js、设置环境变量、上传应用代码、安装依赖项、配置Nginx反向代理等。以下是一个详细的步骤指南:
首先,你需要安装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
为了确保Node.js应用能够正常运行,你可能需要设置一些环境变量。你可以在/etc/profile.d/
目录下创建一个新的脚本来设置这些变量。
创建一个新的环境变量脚本:
sudo vi /etc/profile.d/node.sh
添加以下内容:
export NODE_ENV=production
export PATH=$PATH:/usr/local/bin/node
使环境变量生效:
source /etc/profile.d/node.sh
你可以使用scp
、rsync
或其他文件传输工具将你的Node.js应用代码上传到CentOS服务器。
scp
上传文件scp -r /path/to/your/nodejs-app user@your-server-ip:/path/to/deploy
进入你的应用目录并安装依赖项:
cd /path/to/deploy/nodejs-app
npm install
为了使你的Node.js应用可以通过HTTP/HTTPS访问,你需要配置Nginx作为反向代理。
安装Nginx:
sudo yum install -y nginx
启动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 your-domain.com;
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 reload nginx
你可以使用pm2
来管理你的Node.js应用,使其在后台运行并自动重启。
安装pm2
:
sudo npm install -g pm2
使用pm2
启动你的应用:
pm2 start app.js --name your-app-name
设置pm2
开机自启动:
pm2 startup
pm2 save
确保你的防火墙允许HTTP和HTTPS流量:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
打开浏览器并访问你的域名或服务器IP地址,你应该能够看到你的Node.js应用。
通过以上步骤,你应该能够在CentOS上成功部署你的Node.js应用。如果有任何问题,请检查日志文件以获取更多信息。