如何在轻量服务器上部署Node.js或Python项目?

在轻量服务器(如腾讯云轻量应用服务器、阿里云轻量服务器等)上部署 Node.js 或 Python 项目是一个常见需求。以下是详细的步骤指南,适用于大多数 Linux 系统(以 Ubuntu/Debian 为例)。


🛠️ 准备工作

  1. 购买并登录轻量服务器

    • 获取公网 IP 地址
    • 使用 SSH 登录:
      ssh root@your_server_ip
  2. 更新系统

    sudo apt update && sudo apt upgrade -y

✅ 部署 Node.js 项目

1. 安装 Node.js 和 npm

推荐使用 NodeSource 源安装较新版本:

# 添加 NodeSource 仓库(以 Node.js 18 为例)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -

# 安装 Node.js 和 npm
sudo apt install -y nodejs

# 验证安装
node -v
npm -v

2. 上传项目代码

方式一:使用 Git 克隆

git clone https://github.com/yourname/your-node-project.git
cd your-node-project

方式二:本地打包上传(使用 scp

# 本地终端执行
scp -r ./my-node-app root@your_server_ip:/root/my-node-app

3. 安装依赖

npm install

4. 启动项目(建议使用 PM2 进程管理)

安装 PM2:

sudo npm install -g pm2

启动项目:

pm2 start app.js --name "my-node-app"

设置开机自启:

pm2 startup
pm2 save

5. (可选)配置 Nginx 反向X_X

安装 Nginx:

sudo apt install -y nginx

配置站点(例如 /etc/nginx/sites-available/myapp):

server {
    listen 80;
    server_name your_domain_or_ip;

    location / {
        proxy_pass http://127.0.0.1:3000;  # 假设你的 Node 服务运行在 3000 端口
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

启用配置:

sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

✅ 部署 Python 项目(以 Flask/Django 为例)

1. 安装 Python 和 pip

sudo apt install -y python3 python3-pip python3-venv

验证:

python3 --version
pip3 --version

2. 上传项目代码

同 Node.js 方法(Git 或 scp)

3. 创建虚拟环境并安装依赖

cd your-python-project
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

4. 测试运行(确保能启动)

例如 Flask 项目:

export FLASK_APP=app.py
flask run --host=0.0.0.0 --port=5000

注意:生产环境不要用 flask run,应使用 Gunicorn。

5. 使用 Gunicorn 部署

安装 Gunicorn:

pip install gunicorn

启动(示例):

gunicorn -w 4 -b 127.0.0.1:8000 app:app

(假设入口文件是 app.py,Flask 实例名为 app

6. 使用 PM2 管理 Python 进程(推荐)

PM2 也可以管理 Python 应用:

pm2 start "gunicorn -w 4 -b 127.0.0.1:8000 app:app" --name "my-flask-app"
pm2 save
pm2 startup

7. 配置 Nginx 反向X_X(同 Node.js)

修改 proxy_pass 指向 Gunicorn 端口(如 http://127.0.0.1:8000


🔐 安全与优化建议

  1. 开放防火墙端口

    • 轻量服务器控制台 → 防火墙 → 放行 HTTP(80)、HTTPS(443)、SSH(22)
  2. 使用域名 + HTTPS(Let’s Encrypt)

    sudo apt install certbot python3-certbot-nginx
    sudo certbot --nginx -d yourdomain.com
  3. 设置日志查看

    pm2 logs my-app-name
    journalctl -u nginx -f
  4. 定期备份数据和代码


🧩 小贴士

任务 推荐工具
进程管理 PM2(Node.js & Python)
Web 服务器 Nginx
应用服务器(Python) Gunicorn / uWSGI
自动化部署 shell 脚本 / GitHub Actions

✅ 总结

步骤 Node.js Python
安装语言环境 apt install nodejs apt install python3 pip
安装包管理器 npm pip
进程守护 PM2 PM2 + Gunicorn
反向X_X Nginx Nginx
上线命令 pm2 start app.js gunicorn ...

如果你提供具体的项目类型(如 Express、Flask、Django、FastAPI),我可以给出更精确的部署脚本和配置。欢迎继续提问!

未经允许不得转载:秒懂云 » 如何在轻量服务器上部署Node.js或Python项目?