首页主机资讯CentOS与Node.js的集成方法

CentOS与Node.js的集成方法

时间2025-10-13 22:21:03发布访客分类主机资讯浏览313
导读:CentOS与Node.js集成的核心流程及优化方案 1. 系统准备:更新系统包 在安装Node.js前,先更新CentOS系统包以确保兼容性: sudo yum update -y 2. 安装Node.js:三种主流方式 (1)通过No...

CentOS与Node.js集成的核心流程及优化方案

1. 系统准备:更新系统包

在安装Node.js前,先更新CentOS系统包以确保兼容性:

sudo yum update -y

2. 安装Node.js:三种主流方式

(1)通过NodeSource仓库安装(推荐,支持特定版本)

NodeSource提供CentOS兼容的Node.js二进制分发库,可安装最新或指定版本(如14.x、16.x、18.x):

# 添加NodeSource仓库(以16.x为例,替换为所需版本)
curl -sL https://rpm.nodesource.com/setup_16.x | sudo bash -

# 安装Node.js及npm
sudo yum install -y nodejs

验证安装:

node -v  # 查看Node.js版本
npm -v   # 查看npm版本

此方式安装的Node.js会自动配置环境变量,无需额外操作。

(2)使用nvm管理多版本(灵活,适合开发测试)

nvm(Node Version Manager)可方便切换多个Node.js版本,适合需要同时维护多个项目的场景:

# 安装nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash

# 加载nvm环境
source ~/.bashrc

# 安装指定版本Node.js(如18.16.0)
nvm install 18.16.0

# 切换版本
nvm use 18.16.0

# 设置默认版本
nvm alias default 18.16.0

验证当前使用的版本:

node -v
```。

#### **(3)通过EPEL仓库安装(基础版本,适合简单需求)**  
EPEL(Extra Packages for Enterprise Linux)仓库提供CentOS默认源中没有的软件包,但Node.js版本较旧:  
```bash
# 安装EPEL仓库
sudo yum install -y epel-release

# 安装Node.js及npm
sudo yum install -y nodejs npm

验证安装:

node -v
npm -v
```。


### **3. 部署Node.js项目:从代码到运行**
#### **(1)上传项目代码**  
将本地项目上传至CentOS服务器(如通过`git clone`或`scp`):  
```bash
git clone <
    项目仓库URL>
  # 示例:git clone https://github.com/user/project.git
cd project              # 进入项目目录
```。

#### **(2)安装项目依赖**  
项目根目录下的`package.json`文件记录了依赖项,运行以下命令安装:  
```bash
npm install

若需安装开发依赖(如eslint),可添加--save-dev参数:

npm install eslint --save-dev
```。

#### **(3)使用PM2进程管理(生产环境必备)**  
PM2可保持Node.js应用后台运行、自动重启及负载均衡,提升应用稳定性:  
```bash
# 全局安装PM2
sudo npm install -g pm2

# 启动应用(假设入口文件为app.js,应用名为"my-app")
pm2 start app.js --name "my-app"

# 设置开机自启动(避免服务器重启后应用停止)
pm2 startup

# 保存当前进程列表(配合startup使用)
pm2 save

常用命令:

pm2 list      # 查看应用状态
pm2 logs      # 查看应用日志
pm2 restart my-app  # 重启应用
pm2 stop my-app     # 停止应用
```。


### **4. 配置Nginx反向代理(优化性能与安全)**
直接通过Node.js监听80端口(HTTP)或443端口(HTTPS)会带来性能瓶颈及安全风险,建议使用Nginx作为反向代理:  
#### **(1)安装Nginx**  
```bash
sudo yum install -y nginx
sudo systemctl start nginx  # 启动Nginx
sudo systemctl enable nginx # 设置开机自启动
```。

#### **(2)配置Nginx反向代理**  
编辑Nginx配置文件(如`/etc/nginx/conf.d/my-app.conf`),添加以下内容(假设Node.js应用运行在3000端口,域名`example.com`):  
```nginx
server {
    
    listen 80;
    
    server_name example.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

效果:用户访问http://example.com时,Nginx会将请求转发至本地的Node.js应用(3000端口),同时提供静态文件缓存、SSL终止等功能。

5. 防火墙配置(允许外部访问)

CentOS默认启用firewalld防火墙,需开放应用端口(如3000、80)以允许外部访问:

# 开放3000端口(若使用Nginx反向代理,可跳过此步)
sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent

# 重新加载防火墙规则
sudo firewall-cmd --reload

若使用Nginx反向代理,只需开放80/443端口(HTTP/HTTPS)即可。

通过以上步骤,可实现CentOS与Node.js的高效集成,覆盖从环境搭建到项目部署的全流程,满足生产环境的需求。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS与Node.js的集成方法
本文地址: https://pptw.com/jishu/725194.html
Ubuntu Strings怎样实现系统监控 Linux dropped监控方法

游客 回复需填写必要信息