在腾讯云轻量应用服务器上部署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
八、常见问题解决
-
权限问题:
chown -R www-data:www-data /var/www/myproject chmod -R 755 /var/www/myproject -
端口被占用:
netstat -tlnp -
Python路径问题:
确保虚拟环境路径正确,可在gunicorn配置中指定完整路径。
九、腾讯云特定优化
- 使用对象存储COS存储静态文件
- 配置CDN提速静态资源
- 使用云监控监控服务器状态
- 设置自动备份策略
这样你的Python项目就成功部署到腾讯云轻量应用服务器上了!
CLOUD技术笔记