走啊走
加油

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

服务器价格表

在轻量服务器(如腾讯云轻量应用服务器、阿里云轻量服务器、AWS Lightsail 等)上部署 Node.js 或 Python 项目,可以按照以下通用步骤进行。下面分别介绍两种语言的部署流程。


✅ 一、准备工作

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

  • 登录云服务商控制台,购买一台轻量服务器(推荐 Ubuntu 20.04/22.04 LTS)。
  • 获取公网 IP 地址和 SSH 登录凭证(用户名通常是 rootubuntu)。

2. 连接到服务器

ssh root@你的服务器IP

3. 更新系统

sudo apt update && sudo apt upgrade -y

🟦 二、部署 Node.js 项目

1. 安装 Node.js 和 npm

使用 NodeSource 源安装较新版本:

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs

验证安装:

node --version
npm --version

2. 上传项目代码

方式有多种:

方法 A:使用 Git 克隆

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

方法 B:本地打包上传(scp)

# 本地执行
scp -r ./your-project root@服务器IP:/root/

然后在服务器解压并安装依赖。

3. 启动项目

npm start
# 或
node app.js

但建议使用进程管理工具。

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

npm install -g pm2
pm2 start app.js --name "my-node-app"
pm2 startup
pm2 save

设置开机自启。

5. 配置反向X_X(Nginx)

安装 Nginx:

sudo apt install nginx -y

配置站点(编辑 /etc/nginx/sites-available/default):

server {
    listen 80;
    server_name your-domain.com;  # 或服务器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;
    }
}

重启 Nginx:

sudo systemctl restart nginx

6. 开放防火墙端口

确保云平台安全组开放了 80(HTTP)443(HTTPS) 端口。


🟨 三、部署 Python 项目(以 Flask/Django 为例)

1. 安装 Python 环境

Ubuntu 通常自带 Python3:

python3 --version
pip3 --version

安装 pip(如果没有):

sudo apt install python3-pip python3-venv -y

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

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

3. 测试运行(开发模式)

例如 Flask:

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

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

4. 使用 Gunicorn 部署(生产级)

安装 Gunicorn:

pip install gunicorn

启动服务:

gunicorn -w 4 -b 127.0.0.1:8000 app:app  # 根据你的入口文件调整

5. 使用 Supervisor 管理进程(推荐)

安装 Supervisor:

sudo apt install supervisor -y

创建配置文件 /etc/supervisor/conf.d/my-flask-app.conf

[program:my-flask-app]
command=/root/your-project/venv/bin/gunicorn -w 4 -b 127.0.0.1:8000 app:app
directory=/root/your-project
user=root
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/my-flask-app.log

更新 Supervisor:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start my-flask-app

6. Nginx 反向X_X(同 Node.js 类似)

配置 Nginx:

server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://127.0.0.1:8000;
        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;
    }
}

重启 Nginx:

sudo systemctl restart nginx

🔐 四、安全与优化建议

  1. 域名绑定与 HTTPS

    • 绑定域名到服务器 IP。
    • 使用 Let's Encrypt 免费证书(Certbot)开启 HTTPS:
      sudo apt install certbot python3-certbot-nginx -y
      sudo certbot --nginx -d your-domain.com
  2. 关闭不必要的端口

    • 仅开放 80、443、22(SSH)等必要端口。
    • 使用云平台“安全组”规则限制访问。
  3. 定期备份

    • 备份数据库、代码、配置文件。
  4. 日志监控

    • 查看 Nginx、PM2、Supervisor 日志排查问题。

✅ 总结

步骤 Node.js Python (Flask/Django)
安装运行环境 Node.js + npm Python + pip + venv
进程管理 PM2 Supervisor
Web 服务器 Nginx 反向X_X Nginx + Gunicorn/uWSGI
部署方式 Git clone / scp Git clone / scp
生产建议 不用 node app.js 直接运行 不用 flask run 开发服务器

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