- 首页 >
- 问答 >
-
云计算 >
- Ubuntu Nodejs服务器如何搭建
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/*
- 验证安装
- 可选优化
- 配置 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)
- 创建入口文件 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