温馨提示×

CentOS与Node.js的集成方法是什么

小樊
52
2025-09-18 03:56:20
栏目: 编程语言

CentOS与Node.js的集成主要围绕 安装配置进程管理生产环境优化(如反向代理、防火墙设置)三个核心环节展开,以下是具体方法:

一、安装Node.js:选择合适的方式

1. 使用NodeSource仓库安装(推荐,支持特定版本)

NodeSource提供CentOS兼容的二进制分发库,可安装最新或指定版本的Node.js(如LTS版本)。步骤如下:

  • 卸载系统自带旧版本(若有):sudo yum remove nodejs npm
  • 安装依赖工具:sudo yum install -y curl gcc-c++ make
  • 下载并运行NodeSource安装脚本(以18.x为例):curl -sL https://rpm.nodesource.com/setup_18.x | sudo bash -
  • 通过yum安装Node.js:sudo yum install -y nodejs
  • 验证安装:node -v(显示版本号)、npm -v(显示npm版本)。

2. 使用NVM(Node Version Manager)管理多版本

适合需要切换不同Node.js版本的开发或测试环境。步骤如下:

  • 安装NVM:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
  • 加载NVM到当前shell:source ~/.bashrc(或~/.zshrc,根据shell类型调整)
  • 安装最新稳定版Node.js:nvm install node(或指定版本,如nvm install 18.16.0
  • 设置默认版本:nvm alias default node
  • 验证:node -v

3. 通过包管理器安装(简单但版本较旧)

若无需特定版本,可直接用CentOS默认仓库安装(版本可能滞后):

  • 更新系统:sudo yum update
  • 安装EPEL仓库(增强软件包):sudo yum install epel-release
  • 安装Node.js及npm:sudo yum install -y nodejs npm
  • 验证:node -vnpm -v

二、部署Node.js应用

1. 上传应用代码

将本地项目上传至服务器,常用方式:

  • SCP命令scp -r ./local_project user@server_ip:/var/www/
  • Git克隆git clone your_app_git_address /var/www/myapp

2. 安装依赖与启动应用

  • 进入项目目录:cd /var/www/myapp
  • 安装npm依赖:npm install(若项目有package-lock.json,建议用npm ci确保一致性)
  • 启动应用:
    • 直接运行(前台模式,终端关闭后停止):node app.jsapp.js为入口文件)
    • 推荐用PM2守护进程(保持应用后台运行、自动重启):
      • 全局安装PM2:sudo npm install pm2 -g
      • 启动应用:pm2 start app.js --name "my-app"--name指定应用名称)
      • 设置开机自启:pm2 startup(按提示运行生成的命令)
      • 保存当前进程列表:pm2 save

三、生产环境优化

1. 配置防火墙放行端口

若应用需对外提供服务,需开放对应端口(如3000、8080):

  • 放行端口:sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent
  • 重载防火墙:sudo firewall-cmd --reload
  • 验证端口是否开放:sudo firewall-cmd --list-ports

2. 使用Nginx反向代理(提升性能与安全性)

Nginx可作为前端代理,处理静态文件、负载均衡及SSL加密。步骤如下:

  • 安装Nginx:sudo yum install -y nginx
  • 启动Nginx:sudo systemctl start nginx
  • 配置反向代理(编辑/etc/nginx/conf.d/my-app.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的完整集成,覆盖从环境搭建到生产部署的全流程。

0