温馨提示×

如何在CentOS上部署Node.js应用

小樊
57
2025-03-13 12:28:36
栏目: 编程语言

在CentOS上部署Node.js应用涉及几个步骤,包括安装Node.js、设置环境变量、上传应用代码、安装依赖项、配置Nginx反向代理等。以下是一个详细的步骤指南:

1. 安装Node.js

首先,你需要安装Node.js。你可以使用NodeSource提供的Node.js二进制分发库来安装特定版本的Node.js。

使用NodeSource安装Node.js

  1. 添加NodeSource仓库:

    curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash - 
  2. 安装Node.js:

    sudo yum install -y nodejs 
  3. 验证安装:

    node -v npm -v 

2. 设置环境变量

为了确保Node.js应用能够正常运行,你可能需要设置一些环境变量。你可以在/etc/profile.d/目录下创建一个新的脚本来设置这些变量。

  1. 创建一个新的环境变量脚本:

    sudo vi /etc/profile.d/node.sh 
  2. 添加以下内容:

    export NODE_ENV=production export PATH=$PATH:/usr/local/bin/node 
  3. 使环境变量生效:

    source /etc/profile.d/node.sh 

3. 上传应用代码

你可以使用scprsync或其他文件传输工具将你的Node.js应用代码上传到CentOS服务器。

使用scp上传文件

scp -r /path/to/your/nodejs-app user@your-server-ip:/path/to/deploy 

4. 安装依赖项

进入你的应用目录并安装依赖项:

cd /path/to/deploy/nodejs-app npm install 

5. 配置Nginx反向代理

为了使你的Node.js应用可以通过HTTP/HTTPS访问,你需要配置Nginx作为反向代理。

  1. 安装Nginx:

    sudo yum install -y nginx 
  2. 启动Nginx:

    sudo systemctl start nginx sudo systemctl enable nginx 
  3. 配置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; } } 
  4. 重新加载Nginx配置:

    sudo systemctl reload nginx 

6. 启动Node.js应用

你可以使用pm2来管理你的Node.js应用,使其在后台运行并自动重启。

  1. 安装pm2

    sudo npm install -g pm2 
  2. 使用pm2启动你的应用:

    pm2 start app.js --name your-app-name 
  3. 设置pm2开机自启动:

    pm2 startup pm2 save 

7. 配置防火墙

确保你的防火墙允许HTTP和HTTPS流量:

sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload 

8. 验证部署

打开浏览器并访问你的域名或服务器IP地址,你应该能够看到你的Node.js应用。

通过以上步骤,你应该能够在CentOS上成功部署你的Node.js应用。如果有任何问题,请检查日志文件以获取更多信息。

0