温馨提示×

Node.js配置Linux服务器的步骤是什么

小樊
35
2025-11-08 20:32:56
栏目: 云计算

1. 准备工作
确保已拥有可正常登录的Linux服务器(如Ubuntu、CentOS),并具备root或sudo权限;准备待部署的Node.js应用代码(或本地已初始化的项目)。

2. 安装Node.js运行环境
根据需求选择以下一种方式安装:

  • 通过包管理器安装(快速便捷,适合常规需求)
    • Ubuntu/Debian:执行sudo apt update && sudo apt install -y nodejs npm,安装完成后通过node -vnpm -v验证版本。
    • CentOS/RHEL:执行sudo yum update && sudo yum install -y nodejs npm,同样通过版本命令验证。
  • 使用NodeSource库安装(支持特定版本,适合生产环境)
    以安装Node.js 18.x为例,执行以下命令:
    curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
    sudo apt install -y nodejs  # Debian/Ubuntu
    # 或 sudo yum install -y nodejs  # CentOS/RHEL
    
    验证版本确认安装成功。
  • 通过nvm安装(灵活管理多版本,适合开发调试)
    执行curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash安装nvm,加载配置source ~/.bashrc,然后通过nvm install node安装最新LTS版本,用nvm use node切换版本。
  • 手动下载二进制包安装(自定义路径,适合特殊环境)
    从Node.js官网下载对应Linux架构的二进制包(如node-v20.11.1-linux-x64.tar.xz),上传至服务器,执行tar -xvf node-v20.11.1-linux-x64.tar.xz解压,将bin目录链接到系统路径:
    sudo ln -s /path/to/node-v20.11.1-linux-x64/bin/node /usr/local/bin/node
    sudo ln -s /path/to/node-v20.11.1-linux-x64/bin/npm /usr/local/bin/npm
    
    验证版本确认安装。

3. 配置项目与应用

  • 初始化项目(若为新应用)
    在项目目录下执行npm init -y,生成package.json文件(记录项目依赖与脚本)。
  • 安装依赖
    将本地项目的package.jsonpackage-lock.json上传至服务器项目目录,执行npm install安装所有依赖(或使用npm ci严格根据lock文件安装)。
  • 配置环境变量
    安装dotenv包(npm install dotenv),在项目根目录创建.env文件,添加敏感信息(如数据库连接串、API密钥):
    DB_HOST=localhost
    DB_USER=root
    DB_PASSWORD=yourpassword
    
    在代码中通过require('dotenv').config()加载环境变量。

4. 启动与管理应用

  • 直接启动(适合测试)
    在项目目录下执行node app.js(假设入口文件为app.js),启动应用。此方式需保持终端开启,关闭后应用停止。
  • 使用PM2进程管理(生产必备)
    全局安装PM2:npm install pm2 -g,启动应用:pm2 start app.js --name "myapp"--name指定应用名称);常用命令:pm2 status(查看状态)、pm2 logs(查看日志)、pm2 restart myapp(重启)、pm2 save(保存当前进程列表)、pm2 startup(设置开机自启)。

5. 配置Nginx反向代理(提升性能与安全性)

  • 安装Nginx
    Ubuntu/Debian执行sudo apt install -y nginx,CentOS/RHEL执行sudo yum install -y nginx,启动服务:sudo systemctl start nginx,设置开机自启:sudo systemctl enable nginx
  • 配置反向代理
    编辑Nginx默认配置文件(sudo vim /etc/nginx/sites-available/default),修改server块:
    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

6. 配置SSL证书(启用HTTPS,保障安全)

  • 使用Let’s Encrypt免费获取证书
    安装Certbot:sudo apt install -y certbot python3-certbot-nginx(Ubuntu/Debian),CentOS/RHEL执行sudo yum install -y certbot python3-certbot-nginx;获取证书:sudo certbot --nginx -d yourdomain.com(替换为你的域名),按提示完成配置(自动修改Nginx配置,添加HTTPS监听)。
  • 验证证书自动续期
    Let’s Encrypt证书有效期为90天,Certbot会自动添加续期任务(sudo certbot renew --dry-run测试续期流程)。

7. 监控与维护

  • 应用监控
    使用PM2的pm2 monit命令实时监控应用CPU、内存占用,或通过pm2 list查看进程状态。
  • 日志管理
    使用pm2 logs myapp查看应用日志,pm2 flush清空日志;Nginx日志位于/var/log/nginx/access.log(访问日志)和/var/log/nginx/error.log(错误日志)。
  • 防火墙配置
    若服务器开启了防火墙(如Ubuntu的ufw、CentOS的firewalld),需放行HTTP(80)、HTTPS(443)端口:
    sudo ufw allow 80/tcp  # Ubuntu
    sudo ufw allow 443/tcp
    sudo ufw enable
    
    # 或CentOS
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --reload
    

0