温馨提示×

怎样在Debian部署python服务

小樊
43
2026-09-14 07:47:14
栏目: 编程语言

在 Debian 上部署 Python 服务通常有几种常见方式,从简单到生产级依次如下。你可以根据项目规模和需求选择。


一、准备工作(通用)

1. 更新系统

sudo apt update
sudo apt upgrade -y

2. 安装 Python 和 pip

Debian 通常自带 Python3:

python3 --version
sudo apt install python3 python3-pip python3-venv -y

3. 创建项目目录

mkdir -p /opt/myproject
cd /opt/myproject

4. 使用虚拟环境(推荐)

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

二、方式一:直接运行(适合测试)

python3 app.py

后台运行:

nohup python3 app.py > app.log 2>&1 &

⚠️ 不适合生产环境


三、方式二:systemd 托管(推荐,生产常用)

1. 编写服务文件

sudo nano /etc/systemd/system/myproject.service

示例:

[Unit]
Description=My Python Service
After=network.target

[Service]
User=www-data
WorkingDirectory=/opt/myproject
ExecStart=/opt/myproject/venv/bin/python app.py
Restart=always

[Install]
WantedBy=multi-user.target

2. 启动服务

sudo systemctl daemon-reload
sudo systemctl enable myproject
sudo systemctl start myproject

3. 查看状态

sudo systemctl status myproject
journalctl -u myproject -f

✅ 优点:开机自启、自动重启、日志管理方便


四、方式三:Gunicorn + Nginx(Web 服务推荐)

1. 安装 Gunicorn

pip install gunicorn

2. 启动示例

gunicorn -w 4 -b 127.0.0.1:8000 app:app

3. systemd 管理 Gunicorn

ExecStart=/opt/myproject/venv/bin/gunicorn -w 4 -b 127.0.0.1:8000 app:app

4. 安装 Nginx

sudo apt install nginx -y

5. Nginx 反向代理

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
    }
}
sudo nginx -t
sudo systemctl reload nginx

五、方式四:Docker(现代化部署)

FROM python:3.11-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
docker build -t myproject .
docker run -d -p 8000:8000 myproject

六、常见建议

  • 使用 虚拟环境 隔离依赖
  • 生产环境避免 python app.py 直接暴露
  • Web 服务推荐 Gunicorn + Nginx
  • 后台服务推荐 systemd
  • 日志统一用 journalctllogging

如果你能告诉我:

  • Web 服务 / 定时任务 / 后台服务
  • Debian 版本(11 / 12)?
  • 是否用 Flask / FastAPI / Django?

我可以给你更精确的部署方案。

0