想在服务器上跑Python项目——宝塔面板部署Flask/Django完整流程

Python项目管理器+gunicorn生产部署+Nginx反代,跟PHP一样简单
发布于
3

宝塔面板天生支持PHP站点,但对Python项目没有直接的一键部署。不过配合Python项目管理器和Nginx反代,也一样简单。

我在雨云(rain.jiyueip.com,优惠码admin01)服务器上跑过好几个Flask和Django项目,流程跑通了之后十分钟能上新项目。

装Python环境

宝塔软件商店搜”Python项目管理器”装好。它会在服务器上装独立Python环境,不跟系统Python冲突。点”版本管理”装你需要的Python版本(3.10/3.11/3.12)。

创建Python项目

用FTP或Git把项目代码上传到/www/wwwroot/目录下。项目里需要requirements.txt列出依赖。在Python项目管理器里新建项目:填项目路径、选择Python版本、启动文件(Flask通常是app.py,Django是manage.py runserver或gunicorn)、端口(比如8000)。

点启动,Python项目就跑起来了。浏览器访问http://IP:8000确认能打开。

Nginx反代+域名

宝塔建一个站点绑定域名,在站点设置——反向代理里,目标URL填http://127.0.0.1:8000。然后申请SSL证书、开启强制HTTPS。用户访问你的域名→Nginx→反代到Python应用。跟PHP站点的访问方式一样,用户感觉不到后端是什么语言。

生产环境建议

开发用的Flask自带服务器不适合生产。推荐用gunicorn代替:pip install gunicorn,然后用gunicorn -w 4 -b 127.0.0.1:8000 app:app启动(-w 4是4个worker进程)。Django同样可以用gunicorn。

进程管理可以用宝塔自带的Supervisor(进程守护管理器)或者上面写过的PM2。设好开机自启,服务器重启后项目自动恢复。

Python项目部署其实跟Node.js差不多——项目监听本地端口→Nginx反代→域名访问。搞懂这个模型之后所有语言的Web部署都一样了。

常见问题(FAQ)

宝塔面板怎么部署Python项目?
软件商店装Python项目管理器→装所需Python版本→上传项目代码→新建项目填路径/启动文件/端口→启动→Nginx反代到域名加SSL。Flask用gunicorn代替内置服务器做生产部署。
Python项目怎么保持24小时运行?
用gunicorn启动(gunicorn -w 4 -b 127.0.0.1:8000 app:app),配合宝塔的Supervisor进程守护管理器监控运行、挂了自动重启、开机自启。或者用PM2管理。

本文由作者原创/授权发布于极跃圈(jiyueip.com)未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 / 600
0 讨论
热门最新
总结
暂无总结

暂无数据