Ubuntu Python项目部署流程解析
导读:Ubuntu Python项目部署流程解析 一 环境准备与基础配置 更新系统并安装基础工具:sudo apt update && sudo apt upgrade -y;安装常用工具如 git、curl、wget、tmux...
Ubuntu Python项目部署流程解析
一 环境准备与基础配置
- 更新系统并安装基础工具:sudo apt update & & sudo apt upgrade -y;安装常用工具如 git、curl、wget、tmux、vim。
- 安装 Python 3、pip、venv:sudo apt install python3 python3-pip python3-venv -y,验证版本:python3 --version、pip3 --version。
- 建议使用 Ubuntu 20.04/22.04 LTS,并通过 SSH 密钥登录服务器,禁用密码登录以提升安全性。
- 初始化防火墙(UFW):sudo ufw allow 22,80,443;按需开放应用端口(如 8000)。
二 代码获取与依赖管理
- 获取代码:
- Git:git clone ;
- 或 SCP:scp -r < 本地路径> < 用户> @< 服务器IP> :< 远程路径> 。
- 创建并激活虚拟环境:python3 -m venv venv;source venv/bin/activate。
- 安装依赖:pip install -r requirements.txt;生产环境建议固定版本(pip freeze > requirements.txt)。
- 管理依赖常用命令:pip install/upgrade/uninstall < 包名> 、pip list、pip show < 包名> 。
- 多版本管理(可选):使用 pyenv 安装与切换特定 Python 版本,便于不同项目共存。
三 应用运行与进程守护
- 选择应用服务器:
- Flask 内置服务器仅用于开发;生产环境建议使用 Gunicorn(WSGI)。示例:gunicorn -w 4 -b 127.0.0.1:8000 app:app(或 myproject.wsgi:application)。
- 亦可使用 uWSGI 作为替代方案。
- 以 systemd 守护进程运行(推荐):创建 /etc/systemd/system/myproject.service,关键字段示例:
- ExecStart=/path/to/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/tmp/myproject.sock myproject.wsgi:application
- WorkingDirectory、User、Group、Environment 按实际填写;启用:sudo systemctl daemon-reload & & sudo systemctl enable --now myproject。
- 常用运维:
- 查看日志:journalctl -u myproject -f;
- 重启服务:sudo systemctl restart myproject。
四 反向代理与静态资源
- 安装 Nginx:sudo apt install nginx -y。
- 配置反向代理(/etc/nginx/sites-available/myproject):
- 监听 80 端口,server_name 为域名或 IP;
- 反向代理:location / { include proxy_params; proxy_pass http://127.0.0.1:8000; } ;
- 静态资源:location /static/ { alias /path/to/static; } ;
- 启用站点:sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled;
- 校验并重载:sudo nginx -t & & sudo systemctl reload nginx。
- 如需直接对外暴露端口(不推荐生产):sudo ufw allow 8000。
五 域名 HTTPS 与安全加固
- 域名解析:在域名注册商添加 A 记录 指向服务器 IP。
- 申请 Let’s Encrypt 免费证书:sudo apt install certbot python3-certbot-nginx -y;执行:sudo certbot --nginx -d yourdomain.com(自动配置 Nginx 并开启自动续期)。
- 安全加固要点:
- 仅开放 22/80/443 等必要端口;
- 使用 SSH 密钥登录,禁用 root 密码登录;
- 定期更新系统与依赖(apt update/upgrade);
- 配置日志轮转(/etc/logrotate.d/myproject),便于长期运行与审计。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Python项目部署流程解析
本文地址: https://pptw.com/jishu/789132.html
