Appearance
web 应用部署
- Web 应用需要通过 HTTP 服务对外提供访问,常见部署架构为「反向代理 + WSGI/ASGI 服务器 + 应用」。
- 如 Django、Flask、FastAPI
准备环境
- 在项目根目录下,生成环境清单文件
requirements.txt
bash
pip list --format=freeze > requirements.txt安装 conda 环境
- 防止多个项目依赖冲突,每个项目使用独立的 conda 环境
- 官方文档:https://www.anaconda.com/docs/getting-started/miniconda/install#linux-terminal-installer
bash
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
# 检查 conda 是否安装成功
conda --version- 每个项目创建一个独立的 conda 环境,环境名称与项目名称相同
bash
conda create -n flask_project python=3.12- 激活 conda 环境
bash
# 激活环境
conda activate flask_project- 在项目根目录下,上传项目代码和依赖清单文件
requirements.txt上传到服务器
bash
# 上传项目代码
scp -r ./ root@212.64.13.112:/www/wwwroot/flask_project
# 或者把代码上传到git仓库,在服务器项目目录下,执行git clone命令
git clone https://github.com/yourusername/flask_project.git- 在服务器项目目录下,安装依赖
bash
pip install -r requirements.txt- 退出 conda 环境
bash
conda deactivateFlask + Gunicorn + Nginx
安装 Flask
bash
pip install flask安装 Gunicorn
bash
pip install gunicorn运行项目
bash
gunicorn -w 4 -b 127.0.0.1:8000 app:app配置 nginx
nginx
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}