在Ubuntu上部署Python应用的核心步骤如下,可根据项目需求选择具体方案:
安装Python和pip
sudo apt update
sudo apt install python3 python3-pip python3-venv # 安装Python 3及虚拟环境工具
python3 --version # 验证安装
创建虚拟环境(推荐)
python3 -m venv myenv # 创建虚拟环境
source myenv/bin/activate # 激活环境(终端提示符显示`(myenv)`)
安装依赖
pip install -r requirements.txt # 通过requirements.txt安装所有依赖
启动应用
app.py):python app.py
flask run --host=0.0.0.0 --port=5000 # Flask示例
python manage.py runserver 0.0.0.0:8000 # Django示例
安装Gunicorn(WSGI服务器)
pip install gunicorn
测试Gunicorn运行
gunicorn --bind 0.0.0.0:8000 app:app # 替换为你的应用入口(如Django的wsgi:application)
创建Systemd服务(后台运行)
sudo nano /etc/systemd/system/myapp.service
添加以下内容(修改路径和用户名):
[Unit]
Description=Gunicorn service
After=network.target
[Service]
User=your_username
Group=www-data
WorkingDirectory=/path/to/your/app
ExecStart=/path/to/your/app/myenv/bin/gunicorn --workers 3 --bind unix:/path/to/your/app/app.sock app:app
[Install]
WantedBy=multi-user.target
启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp
配置Nginx反向代理
sudo nano /etc/nginx/sites-available/myapp
添加配置(替换域名和路径):
server {
listen 80;
server_name your_domain.com;
location / {
include proxy_params;
proxy_pass http://unix:/path/to/your/app/app.sock;
}
# 静态文件配置(可选)
location /static/ {
alias /path/to/your/app/static/;
}
}
启用配置并重启Nginx:
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled
sudo nginx -t # 测试配置
sudo systemctl reload nginx
设置防火墙
sudo ufw allow 'Nginx Full' # 允许HTTP/HTTPS流量
collectstatic,并在Nginx中配置静态文件路径。pyenv切换Python版本。settings.py)中的DEBUG=False,并设置ALLOWED_HOSTS。systemctl status myapp和journalctl -u myapp查看服务状态和日志。根据应用类型(如Web框架、命令行工具)选择对应方案,Web应用推荐使用Gunicorn+Nginx组合以提升性能和稳定性。