首页主机资讯CentOS上Node.js项目部署指南

CentOS上Node.js项目部署指南

时间2025-10-13 22:44:03发布访客分类主机资讯浏览1468
导读:CentOS上Node.js项目部署指南 1. 准备工作 确保服务器已安装CentOS 7及以上版本,并具备root或sudo权限。建议提前备份重要数据,避免操作失误导致数据丢失。 2. 安装Node.js与npm 2.1 使用NodeSo...

CentOS上Node.js项目部署指南

1. 准备工作

确保服务器已安装CentOS 7及以上版本,并具备rootsudo权限。建议提前备份重要数据,避免操作失误导致数据丢失。

2. 安装Node.js与npm

2.1 使用NodeSource仓库安装(推荐)

NodeSource提供最新的稳定版Node.js二进制分发包,安装步骤如下:

# 更新系统包索引
sudo yum update -y

# 添加NodeSource仓库(以Node.js 18.x为例,可根据需求替换版本号)
curl -sL https://rpm.nodesource.com/setup_18.x | sudo bash -

# 安装Node.js及npm(NodeSource仓库会自动包含npm)
sudo yum install -y nodejs

# 验证安装结果
node -v  # 输出Node.js版本(如v18.x.x)
npm -v   # 输出npm版本(如10.x.x)

2.2 可选:使用NVM安装多版本Node.js

若需要管理多个Node.js版本,可使用NVM(Node Version Manager):

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

# 加载NVM环境
source ~/.bash_profile

# 安装最新稳定版Node.js
nvm install node

# 切换版本(可选)
nvm use node

3. 配置项目环境

3.1 上传项目文件

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

  • scp命令(本地到服务器):
    scp -r /本地项目路径 user@服务器IP:/var/www/项目目录
    
  • FTP工具(如FileZilla):通过图形界面拖拽上传。

3.2 安装项目依赖

进入项目目录,安装package.json中定义的依赖:

cd /var/www/项目目录
npm install  # 安装生产环境依赖
# 若需安装开发依赖(如测试框架),可添加--save-dev选项:
# npm install eslint --save-dev

3.3 设置环境变量

通过.env文件管理敏感信息(如数据库密码、API密钥),并使用dotenv包加载:

# 安装dotenv
npm install dotenv

# 在项目根目录创建.env文件
echo "PORT=3000\nDB_HOST=localhost\nDB_USER=root\nDB_PASSWORD=yourpassword" >
     .env

# 在入口文件(如app.js)顶部加载环境变量
require('dotenv').config();

注意.env文件需添加至.gitignore,避免提交至代码仓库。

4. 使用PM2管理进程

PM2是Node.js进程管理工具,可实现后台运行、自动重启、负载均衡等功能。

# 全局安装PM2
sudo npm install pm2 -g

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

# 常用命令:
pm2 list          # 查看进程列表
pm2 logs my-app   # 查看应用日志
pm2 restart my-app # 重启应用
pm2 stop my-app   # 停止应用
pm2 delete my-app # 删除进程

4.1 设置PM2开机自启动

确保服务器重启后应用自动恢复运行:

# 生成开机启动脚本
pm2 startup

# 保存当前进程列表
pm2 save

5. 配置Nginx反向代理(可选但推荐)

Nginx可作为反向代理,提升应用性能(负载均衡、静态文件缓存)和安全性(隐藏Node.js端口、HTTPS支持)。

# 安装Nginx
sudo yum install nginx -y

# 启动并启用Nginx
sudo systemctl start nginx
sudo systemctl enable nginx

# 配置反向代理(编辑默认配置文件或新建自定义配置)
sudo vi /etc/nginx/conf.d/my-app.conf

在配置文件中添加以下内容(替换yourdomain.com为域名,3000为Node.js应用端口):

server {
    
    listen 80;
    
    server_name yourdomain.com;


    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

6. 配置防火墙

允许HTTP(80端口)和HTTPS(443端口)流量通过防火墙:

# CentOS 7及以上版本使用firewalld
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

若使用iptables,可添加以下规则:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo service iptables save

7. 可选:配置SSL证书(启用HTTPS)

使用Let’s Encrypt免费获取SSL证书,提升网站安全性:

# 安装Certbot及Nginx插件
sudo yum install -y certbot python3-certbot-nginx

# 获取证书(自动配置Nginx)
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

# 按照提示完成配置(如选择是否自动重定向HTTP至HTTPS)

证书有效期为90天,可通过以下命令自动续期:

sudo certbot renew --dry-run  # 测试续期
sudo certbot renew           # 实际续期

8. 测试部署

打开浏览器,访问http://yourdomain.com(若配置了SSL则为https://yourdomain.com),确认应用正常运行。若出现502 Bad Gateway错误,需检查:

  • Node.js应用是否启动(pm2 list查看状态);
  • Nginx配置中的proxy_pass地址是否正确(需与Node.js应用端口一致);
  • 防火墙是否允许对应端口流量。

通过以上步骤,即可在CentOS上完成Node.js项目的部署,并实现稳定的后台运行与安全的网络访问。

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


若转载请注明出处: CentOS上Node.js项目部署指南
本文地址: https://pptw.com/jishu/725217.html
SQL Server在CentOS上的兼容性问题怎么解决 CentOS下Node.js性能优化技巧

游客 回复需填写必要信息