在 Ubuntu 上部署 Python 服务有多种方式,下面从最简单到生产级逐步介绍,你可以按需求选择。
sudo apt update
sudo apt install python3 python3-pip -y
python3 app.py
⚠️ 缺点:关闭终端即停止
nohup python3 app.py > app.log 2>&1 &
查看日志:
tail -f app.log
假设你的服务:
/opt/myservice/app.pyubuntusudo nano /etc/systemd/system/myservice.service
内容示例:
[Unit]
Description=My Python Service
After=network.target
[Service]
User=ubuntu
WorkingDirectory=/opt/myservice
ExecStart=/usr/bin/python3 /opt/myservice/app.py
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start myservice
sudo systemctl enable myservice
sudo systemctl status myservice
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
修改 systemd:
ExecStart=/opt/myservice/venv/bin/python /opt/myservice/app.py
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:8000 app:app
ExecStart=/opt/myservice/venv/bin/gunicorn -w 4 -b 127.0.0.1:8000 app:app
sudo apt install nginx
Nginx 配置示例:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8000;
}
}
sudo systemctl restart nginx
FROM python:3.11
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
docker build -t myservice .
docker run -d -p 8000:8000 myservice
| 场景 | 推荐方案 |
|---|---|
| 学习 / 测试 | nohup |
| 长期运行 | systemd |
| Web 服务 | Gunicorn + Nginx |
| 微服务 | Docker |
如果你愿意,可以告诉我:
我可以给你完整可直接用的配置。