1. 环境准备:阿里云ECS选购与基础配置
在阿里云官网选择适合Python项目部署的ECS实例时,我通常会优先考虑"计算型c6"或"通用型g7"系列。以2核4G配置为例,实测运行Python+Django+MySQL组合能稳定支撑日均5000PV的访问量。特别提醒:华东1(杭州)和华北2(北京)区域网络延迟表现最佳,新用户首购建议选择3年时长享受最大折扣。
注意:购买时务必勾选"分配公网IP",带宽建议初始选择3Mbps(后期可随时升级)。安全组规则需预先放行22(SSH)、80(HTTP)、443(HTTPS)、8888(宝塔面板)端口。
系统镜像选择CentOS 7.9或Ubuntu 20.04 LTS,这两个版本与宝塔面板的兼容性最稳定。实例创建完成后,立即通过SSH连接执行以下基础优化命令:
bash复制# 更新系统组件
yum update -y # CentOS
apt update && apt upgrade -y # Ubuntu
# 安装常用工具
yum install -y wget curl vim git
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 宝塔面板安装与核心组件部署
通过官方一键安装脚本部署宝塔面板(建议使用7.9.0以上版本):
bash复制wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
安装完成后,控制台会显示面板访问地址和初始账号密码。首次登录务必完成:
- 在面板设置中修改默认端口(如改为32568)
- 绑定阿里云账号获取免费SSL证书
- 安装Python项目管理器3.0(重要!)
在"软件商店"安装以下必备组件:
- Nginx 1.22(性能优化版)
- MySQL 5.7(兼顾稳定性和特性)
- Redis 6.2(缓存加速)
- Supervisor(进程守护)
避坑提示:MySQL安装后立即执行
mysql_secure_installation设置root密码,并创建专属数据库账号。切勿使用root账号直接连接应用!
3. Python环境专项配置
通过宝塔的Python项目管理器创建隔离环境时,有几点关键经验:
- Python版本选择3.8.10(兼容性最佳)
- 虚拟环境路径设为
/www/wwwroot/venv - 启动方式选择uWSGI(高性能场景)或Gunicorn(开发环境)
项目部署目录建议采用以下结构:
code复制/www/wwwroot/
└── your_project
├── venv # 虚拟环境
├── static # 静态文件
├── media # 媒体文件
└── project # 源码目录
通过SSH进入虚拟环境安装依赖:
bash复制source /www/wwwroot/your_project/venv/bin/activate
pip install -r requirements.txt
4. Nginx高级配置与HTTPS实战
在宝塔面板创建站点时,高级设置中需要特别注意:
- 运行用户选择
www - 伪静态规则根据框架选择(Django需单独配置)
- 日志路径设为
/www/wwwlogs/your_project
HTTPS配置采用混合方案:
- 主域名使用阿里云免费SSL证书
- 子域名通过Let's Encrypt自动续签
- 开启HTTP/2和TLS 1.3协议
典型Nginx配置优化片段:
nginx复制location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000;
uwsgi_read_timeout 300;
}
location /static/ {
alias /www/wwwroot/your_project/static/;
expires 30d;
access_log off;
}
5. 自动化部署与监控方案
通过宝塔的计划任务实现Git自动化部署:
- 创建WebHook密钥
- 配置Git仓库的POST推送地址
- 编写部署脚本示例:
bash复制#!/bin/bash
cd /www/wwwroot/your_project/project
git pull origin main
source ../venv/bin/activate
pip install -r requirements.txt
python manage.py migrate
supervisorctl restart your_project
监控方案建议:
- 安装宝塔的"网站监控报表"插件
- 配置阿里云云监控的站点可用性检测
- 对MySQL慢查询设置告警阈值(>2s)
6. 安全加固与性能调优
必须执行的服务器安全措施:
- 修改SSH默认端口并禁用root登录
- 安装fail2ban防御暴力破解
- 配置宝塔面板的IP访问限制
- 定期自动备份到阿里云OSS
Python项目专项优化技巧:
- 使用
uvloop替代asyncio默认事件循环 - 对Django项目启用
django-compressor - Redis缓存数据库查询结果
- 静态文件通过阿里云CDN加速
针对高并发场景的Nginx内核参数调整:
bash复制echo "net.core.somaxconn = 65535" >> /etc/sysctl.conf
echo "net.ipv4.tcp_max_syn_backlog = 65535" >> /etc/sysctl.conf
sysctl -p
7. 故障排查与日常维护
常见问题快速诊断命令:
bash复制# 检查端口占用
netstat -tunlp | grep 8000
# 查看uWSGI日志
tail -f /www/wwwroot/your_project/uwsgi.log
# 测试MySQL连接
mysql -u db_user -p -h 127.0.0.1 -P 3306
维护建议:
- 每周检查磁盘空间使用
df -h - 每月更新系统安全补丁
- 每季度轮换SSL证书
- 使用
journalctl -u nginx查看详细错误日志
我在实际运维中发现,90%的部署问题源于权限配置不当。建议对所有项目文件执行:
bash复制chown -R www:www /www/wwwroot/your_project
find /www/wwwroot/your_project -type d -exec chmod 755 {} \;
find /www/wwwroot/your_project -type f -exec chmod 644 {} \;
