温馨提示×

Ubuntu Nodejs服务器如何搭建

小樊
39
2025-12-06 06:04:29
栏目: 云计算

Ubuntu Node.js 服务器搭建全流程

一 准备与安装 Node.js

  • 更新系统并安装必要工具
    • sudo apt update && sudo apt upgrade -y
    • sudo apt install -y curl
  • 安装 Node.js(推荐 NodeSource LTS,也可选 NVM 多版本管理)
    • NodeSource LTS
      • curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
      • sudo apt install -y nodejs
    • NVM(便于多版本切换)
      • curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
      • source ~/.bashrc
      • nvm install --lts
      • nvm alias default lts/*
  • 验证安装
    • node -v
    • npm -v
  • 可选优化
    • 配置 npm 镜像加速:npm config set registry https://registry.npmmirror.com
    • 安装常用全局工具:npm install -g pm2 yarn nodemon typescript

二 部署示例应用

  • 初始化项目
    • mkdir my-node-server && cd my-node-server
    • npm init -y
  • 安装依赖(示例用 Express
    • npm install express
  • 创建入口文件 app.js
    • const express = require(‘express’); const app = express(); const port = process.env.PORT || 3000; app.get(‘/’, (req, res) => res.send(‘Hello from Ubuntu Node.js’)); app.listen(port, () => console.log(Server running on port ${port}));
  • 启动与验证
    • node app.js
    • 本地访问:http://localhost:3000

三 生产环境运行与进程守护

  • 使用 PM2 守护进程
    • 启动:pm2 start app.js --name “my-app”
    • 常用:pm2 list、pm2 logs、pm2 restart/reload all
    • 开机自启:pm2 startup(按提示执行生成的命令)
  • 环境变量与配置
    • 使用 dotenv:npm install dotenv
    • 新建 .env:PORT=3000
    • 在代码顶部:require(‘dotenv’).config()
  • 零停机发布
    • pm2 reload all(配合代码更新实现平滑重启)

四 反向代理与域名访问

  • 安装 Nginx
    • sudo apt install -y nginx
  • 配置反向代理(/etc/nginx/sites-available/default)
    • server { listen 80; server_name your_domain_or_ip; location / { proxy_pass http://127.0.0.1:3000; 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; } }
  • 生效配置
    • sudo nginx -t && sudo systemctl reload nginx
  • 访问方式
    • 通过域名或服务器 IP 直接访问 HTTP 80 端口

五 安全与网络配置

  • 防火墙 UFW
    • sudo ufw allow 22/tcp
    • sudo ufw allow 80/tcp
    • sudo ufw allow 443/tcp
    • sudo ufw enable
  • 云服务器安全组
    • 放行 22/80/443(必要时临时放行 3000 用于调试)
    • 建议禁用 root SSH 登录,使用 SSH 密钥 认证
  • 可选 HTTPS
    • 使用 Let’s Encrypt 获取免费证书(certbot),Nginx 配置 443 并启用 TLS
  • 常见问题处理
    • 端口占用:lsof -i:3000 或 ss -tulpen | grep 3000
    • 全局包权限:避免 sudo npm -g,改为配置 npm 全局目录到用户目录或使用 NVM

0