CentOS与Node.js的集成方法
导读: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