在火山引擎云服务器上部署Python项目需完成环境配置、代码上传、依赖安装、服务启动与反向代理设置五个关键环节:先创建Ubuntu 22.04或CentOS 7.9实例并开放22/80/443端口;再SSH登录执行系统更新及Python3、pip、nginx等工具安装;接着用scp或git上传代码并创建venv虚拟环境;然后依requirements.txt安装依赖,配置Gunicorn+Uvicorn托管ASGI服务;最后通过NGINX反向代理指向本地8000端口,并用Certbot申请SSL证书实现HTTPS自动跳转。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在火山引擎云服务器上部署Python项目,需完成环境配置、代码上传、依赖安装、服务启动与反向代理设置五个关键环节,缺一不可。
准备云服务器并配置基础环境
登录火山引擎控制台,创建一台Ubuntu 22.04 LTS或CentOS 7.9的ECS实例,确保安全组已放行22(SSH)、80(HTTP)、443(HTTPS)端口。实例创建后,用SSH连接:【务必使用root或具备sudo权限的用户登录】
执行以下命令更新系统并安装必要工具:
apt update && apt upgrade -y && apt install python3-pip python3-venv nginx curl wget git -y(Ubuntu)
或
yum update -y && yum install epel-release -y && yum install python3-pip python3-devel nginx curl wget git -y(CentOS)
立即学习“Python免费学习笔记(深入)”;
验证Python版本:python3 --version,确认输出为3.8及以上。若低于该版本,需手动编译安装或使用pyenv管理——否则后续FastAPI或VeADK等现代框架将无法运行。
上传项目代码并创建虚拟环境
方法一:使用scp直接上传
本地终端执行:scp -r ./my_project user@your-server-ip:/home/user/
方法二:通过git克隆(推荐用于持续迭代项目)
在服务器/home/user目录下执行:git clone https://github.com/yourname/my_project.git
进入项目根目录,创建隔离的Python环境:
python3 -m venv venv
source venv/bin/activate
这一步必须做。不使用虚拟环境会导致系统Python包被污染,后续多个项目共存时极易因依赖冲突导致服务崩溃。
安装依赖并校验入口文件
检查项目中是否存在requirements.txt,若有,执行:
pip install -r requirements.txt
若项目使用VeADK-Python,需额外安装扩展:
pip install veadk-python[extensions]
若使用uv替代pip(速度更快、依赖更干净):
curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.cargo/env
uv pip install -r requirements.txt
【关键检查】确认项目主程序文件(如main.py、app.py或server.py)中包含可执行的ASGI或WSGI入口,例如:
if __name__ == "__main__":
uvicorn.run("app:app", host="0.0.0.0:8000", reload=False)
配置Gunicorn + Uvicorn托管服务
对于FastAPI或Starlette类项目,不建议直接用Uvicorn裸跑。应使用Gunicorn作为进程管理器,Uvicorn作为工作进程:
第一步:安装Gunicorn
pip install gunicorn
第二步:在项目根目录创建gunicorn.conf.py,写入:
bind = "127.0.0.1:8000"
bind_ssl_certificate = ""
workers = 4
worker_class = "uvicorn.workers.UvicornWorker"
preload = True
timeout = 120
keepalive = 5
第三步:测试启动
gunicorn -c gunicorn.conf.py app:app
若返回“Booting worker with pid”且无报错,说明服务已在本地8000端口就绪。此时用curl http://127.0.0.1:8000测试应返回预期响应。
配置NGINX反向代理并启用HTTPS
编辑/etc/nginx/sites-available/myproject:
upstream myproject {
server 127.0.0.1:8000;
}
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://myproject;
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;
}
}
启用站点:
ln -sf /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
nginx -t && systemctl restart nginx
最后申请SSL证书:
apt install certbot python3-certbot-nginx -y(Ubuntu)
certbot --nginx -d your-domain.com
证书申请成功后,NGINX会自动重写配置启用HTTPS,访问http://your-domain.com将自动跳转至https。

















