Python中如何正确部署Django项目,避免每次抓狂

个人练手用的小项目,用的是 Django 的后端和 Bootstrap 前端,部署用 gunicorn + suervisor + nginx 在 ubuntu 下,每次搞一堆配置文件都不顺利,究其原因还是对原理不够了解,求详细解读,或求推荐其他的部署方案。


Python中如何正确部署Django项目,避免每次抓狂
25 回复

把报错信息贴出来,大家一起帮你看看。


我无法理解你的问题

docker 就是解决这个问题的

docker 可以帮你解决这些问题。

你写个 bash shell,或者 ansible,以后就一样的了

我一度认为,Docker 就是为 Python 而发明的技术

感觉就第一次部署有难度吧,后面熟了直接把配置文件 uwsgi 和 nginx 的配置文件路径参数一改就行了

练手小项目直接 python ./manage.py runserver 0.0.0.0:8000 够用。等你多了解了一个 wsgi,再用 uwsgi, gunicorn 之类的 web server.

如果你把文件拷贝过去不能运行,用了 docker 也照样不能运行

换个语言喽, 用 docker 有必要吗?

docker 了解一下

docker swarm

Django 部署很简单啊,官网文档都有,另外写个 makefile。。。反正我这个 makefile 用了 2 年了。。

感觉就是楼主要分清楚 Nginx gunicorn suervisor 这三个都是负责干嘛的
一上来可以先不用 suervisor 这东西主要负责进程管理 快速重启和启动 gunicorn 和 nginx 的
搞清楚 nginx 和 gunicorn 或者 uwsgi 的关系 基本就能理清楚和排查错误了

我用的 dokku 部署的 也即是 heroke 每次部署只需要 push 一下就行了

1.你可以试试 cookiecutter-django,命令行自动生成配置好的项目,也可以自己写 cookiecutter


2.建议开发环境和部署环境分开,可以继承 Configuration,写配置类,我一般是一个通常配置文件,一个开发配置文件,一个部署配置文件…然后每次只要在 manage.py 里指定下环境变量就可以了。


3.Pycharm 直接连接 docker 环境进行开发


有段时间没用 Django 开发了,可能有说错的地方…

看来推荐 docker 的多

用 docker 吧

为啥不用 uwsgi 呢

然而还是 go 用的多。。

有谁用 systemd 来部署虚拟环境中的 gunicorn Django 的教程吗?

gunicorn -d 其实都贼稳,不用担心

写了一个示例: https://gist.github.com/cosven/e308359b83df5cbbe7398b4a95247add

Python 3 + venv + gunicorn + NGINX + supervisor
(配合其它原理文章食用更佳)

回到顶部