如何在Blogger上部署Python Flask应用?
部署Flask应用到自有域名/个人博客的完整步骤
前置准备
- 提前调整Flask应用的生产配置:关闭Debug模式,设置
DEBUG = False,所有敏感信息(密钥、数据库连接串等)不要硬编码在代码里,建议通过环境变量读取 - 准备好已完成实名认证的自有域名
- 准备一台可公网访问的服务器,推荐使用Debian/CentOS等主流Linux发行版的云服务器
1. 服务器基础环境配置
- 远程连接到服务器,先更新系统依赖,Debian/Ubuntu系统执行
apt update && apt upgrade -y - 安装对应版本的Python、pip与虚拟环境工具,创建独立的Python虚拟环境运行你的Flask应用,避免和系统其他程序的依赖冲突
- 将Flask应用代码上传到服务器(可通过scp、git拉取等方式),激活虚拟环境后执行
pip install -r requirements.txt安装所有依赖 - 本地测试应用可正常启动:运行启动命令后访问对应内网端口,确认返回内容符合预期
2. 配置生产级WSGI服务
注意:Flask自带的内置服务器仅适用于开发调试,绝对不能直接暴露到公网用于生产环境,必须替换为Gunicorn/uWSGI这类生产级WSGI服务器
- 虚拟环境内安装Gunicorn:
pip install gunicorn - 测试Gunicorn启动:假设你的Flask实例在app.py文件中名为app,执行
gunicorn -w 4 -b 127.0.0.1:5000 app:app即可启动,其中-w参数为工作进程数,一般设置为服务器CPU核心数的2倍即可 - 配置systemd服务实现开机自启:新建
/etc/systemd/system/flask-app.service服务配置文件,填写对应的启动参数后,执行systemctl daemon-reload、systemctl enable --now flask-app启动服务并设置开机自启,避免服务器重启后应用中断
3. 配置反向代理(和现有博客共存必做)
如果要和已有的个人博客部署在同一台服务器上,用Nginx做反向代理即可实现多站点共存,还可以托管静态资源、配置SSL证书
- 安装Nginx:
apt install nginx -y - 新建Nginx站点配置文件,路径一般为
/etc/nginx/sites-available/flask-app,按需配置转发规则:用独立子域名部署:将
server_name设置为你要使用的子域名(比如flask.example.com),在location块中将请求proxy_pass到http://127.0.0.1:5000即可
用现有博客的子路径部署:比如要放在example.com/flask-app路径下,就配置location ^~ /flask-app对应的转发规则,同时在Flask应用中添加配置APPLICATION_ROOT = '/flask-app'适配路径前缀 - 验证Nginx配置是否合法:执行
nginx -t,返回success后执行systemctl reload nginx重载配置生效
4. 域名解析与HTTPS配置
- 前往你的域名服务商后台,添加A记录:将你用来部署Flask应用的域名/子域名解析到服务器的公网IP
- 开放服务器安全组/防火墙的80(HTTP)、443(HTTPS)端口访问权限
- 申请SSL证书配置HTTPS,配置完成后通过域名访问即可正常打开你的Flask应用
内容的提问来源于stack exchange,提问作者Surendranatha Reddy T
相关产品推荐
相关产品推荐

