温馨提示×

Linux环境下Node.js配置的进阶指南

小樊
59
2025-07-13 13:53:26
栏目: 编程语言

在Linux环境下配置Node.js涉及多个步骤,包括安装、环境变量配置、性能优化、进程管理、日志管理和安全配置。以下是一个详细的进阶指南:

安装Node.js

  • 使用NodeSource二进制分发库

    1. 更新系统包列表:
      sudo apt-get update
      
    2. 安装NodeSource库(以Node.js 16.x为例):
      curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
      
    3. 安装Node.js和npm:
      sudo apt-get install -y nodejs
      
  • 使用包管理器(适用于Debian/Ubuntu和CentOS/RHEL):

    • Debian/Ubuntu:
      sudo apt-get update
      sudo apt-get install nodejs npm
      
    • CentOS/RHEL:
      sudo yum install -y nodejs npm
      
  • 使用nvm(Node Version Manager)

    1. 安装nvm:
      curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
      
    2. 加载nvm:
      source ~/.bashrc
      
    3. 使用nvm安装Node.js:
      nvm install node
      
    4. 使用特定版本的Node.js:
      nvm use 16.14.0
      

配置环境变量

  • 编辑~/.bashrc文件,将Node.js和npm的路径添加到环境变量中:
    export PATH=$PATH:/usr/local/bin
    
  • 使环境变量生效:
    source ~/.bashrc
    

性能优化

  • 代码层面优化

    • 使用异步编程,避免同步阻塞操作。
    • 优化算法和数据结构。
    • 减少全局变量,合理使用缓存。
  • 服务器配置优化

    • 使用负载均衡器(如Nginx或HAProxy)。
    • 集群模式,利用多核CPU。
    • 使用HTTP/2或HTTP/3提高网络传输速度。

进程管理

  • 使用pm2

    • 安装pm2:
      npm install pm2 -g
      
    • 启动应用:
      pm2 start app.js --name "my-app"
      
    • 监控应用状态:
      pm2 monit
      
    • 查看日志:
      pm2 logs my-app
      
  • 使用systemd

    • 创建服务文件:
      sudo nano /etc/systemd/system/my-app.service
      
    • 启动并启用服务:
      sudo systemctl daemon-reload
      sudo systemctl start my-app
      sudo systemctl enable my-app
      
    • 查看服务状态:
      sudo systemctl status my-app
      

日志管理

  • 使用内置的console模块

    const express = require('express');
    const app = express();
    app.get('/', (req, res) => {
      console.log('Request received');
      res.send('Hello World!');
    });
    app.listen(3000, () => {
      console.log('Server is running on port 3000');
    });
    
  • 使用日志库(如Winston、Bunyan):

    const winston = require('winston');
    const logger = winston.createLogger({
      level: 'info',
      format: winston.format.json(),
      transports: [
        new winston.transports.File({ filename: 'error.log', level: 'error' }),
        new winston.transports.File({ filename: 'combined.log' }),
      ],
    });
    

安全配置

  • 账户安全及权限管理

    • 禁用root以外的超级用户。
    • 用户口令设置,生产环境口令要求包含大写字母、小写字母、数字和特殊字符四种中的三种,长度大于10位。
    • 禁止su切换为root。
  • 防火墙配置

    • 使用firewalld配置防火墙:
      sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
      sudo systemctl restart firewalld
      
    • 允许必要的端口:允许HTTP(端口80)和HTTPS(端口443)流量,允许SSH访问(端口22)。
  • SSL证书管理

    • 安装SSL证书,获取SSL证书并解压,将证书的公钥和私钥文件路径指定到Node.js的配置文件中。
    • 测试SSL证书:使用浏览器访问 https://yourdomain.com,查看安全锁标志。

通过以上步骤,你可以在Linux环境下成功配置Node.js,并确保其高性能、安全性和可管理性。

0