如何在腾讯云轻量应用服务器Ubuntu系统上部署Python项目?

在腾讯云轻量应用服务器上部署Python项目,以下是详细步骤:

一、准备工作

1. 连接服务器

ssh root@你的服务器IP

2. 更新系统

apt update && apt upgrade -y

二、安装必要软件

1. 安装Python环境

# 安装Python3和pip
apt install python3 python3-pip python3-venv -y

# 安装虚拟环境管理工具
pip3 install virtualenv

2. 安装数据库(如需要)

# MySQL
apt install mysql-server -y

# PostgreSQL
apt install postgresql postgresql-contrib -y

# Redis
apt install redis-server -y

3. 安装Web服务器

# Nginx
apt install nginx -y

# 或 Apache
apt install apache2 -y

三、部署Python项目

1. 创建项目目录

mkdir -p /var/www/myproject
cd /var/www/myproject

2. 上传项目代码

# 方法1:使用git克隆
git clone 你的仓库地址 .

# 方法2:使用scp上传(本地执行)
scp -r ./project root@服务器IP:/var/www/myproject/

3. 创建虚拟环境

python3 -m venv venv
source venv/bin/activate

4. 安装依赖

pip install -r requirements.txt

5. 配置环境变量

# 创建.env文件
nano .env

# 或设置系统环境变量
export DATABASE_URL="mysql://user:password@localhost/dbname"
export SECRET_KEY="your-secret-key"

四、配置Gunicorn(WSGI服务器)

1. 安装Gunicorn

pip install gunicorn

2. 创建Gunicorn服务文件

nano /etc/systemd/system/myproject.service

添加以下内容:

[Unit]
Description=Gunicorn instance for myproject
After=network.target

[Service]
User=www-data
Group=www-data
WorkingDirectory=/var/www/myproject
Environment="PATH=/var/www/myproject/venv/bin"
ExecStart=/var/www/myproject/venv/bin/gunicorn 
          --workers 3 
          --bind unix:myproject.sock 
          --access-logfile - 
          --error-logfile - 
          app:app

[Install]
WantedBy=multi-user.target

3. 启动服务

systemctl start myproject
systemctl enable myproject

五、配置Nginx反向XX

1. 创建Nginx配置文件

nano /etc/nginx/sites-available/myproject

添加以下内容:

server {
    listen 80;
    server_name 你的域名或IP;

    location / {
        include proxy_params;
        proxy_pass http://unix:/var/www/myproject/myproject.sock;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    location /static {
        alias /var/www/myproject/static;
        expires 30d;
    }

    location /media {
        alias /var/www/myproject/media;
        expires 30d;
    }
}

2. 启用配置

ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
nginx -t  # 测试配置
systemctl restart nginx

六、安全配置

1. 配置防火墙

# 腾讯云轻量服务器控制台配置或使用ufw
ufw allow 22
ufw allow 80
ufw allow 443
ufw enable

2. 配置SSL证书(HTTPS)

# 使用Certbot获取免费证书
apt install certbot python3-certbot-nginx -y
certbot --nginx -d 你的域名

七、项目维护

1. 查看日志

# Gunicorn日志
journalctl -u myproject -f

# Nginx日志
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log

2. 重启服务

systemctl restart myproject
systemctl restart nginx

3. 自动部署脚本示例

#!/bin/bash
cd /var/www/myproject
git pull origin main
source venv/bin/activate
pip install -r requirements.txt
python manage.py migrate  # Django项目
python manage.py collectstatic --noinput  # Django静态文件
systemctl restart myproject

八、常见问题解决

  1. 权限问题

    chown -R www-data:www-data /var/www/myproject
    chmod -R 755 /var/www/myproject
  2. 端口被占用

    netstat -tlnp
  3. Python路径问题
    确保虚拟环境路径正确,可在gunicorn配置中指定完整路径。

九、腾讯云特定优化

  1. 使用对象存储COS存储静态文件
  2. 配置CDN提速静态资源
  3. 使用云监控监控服务器状态
  4. 设置自动备份策略

这样你的Python项目就成功部署到腾讯云轻量应用服务器上了!

云服务器