Python中如何正确部署Django项目,避免每次抓狂
个人练手用的小项目,用的是 Django 的后端和 Bootstrap 前端,部署用 gunicorn + suervisor + nginx 在 ubuntu 下,每次搞一堆配置文件都不顺利,究其原因还是对原理不够了解,求详细解读,或求推荐其他的部署方案。
Python中如何正确部署Django项目,避免每次抓狂
把报错信息贴出来,大家一起帮你看看。
我无法理解你的问题
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 了解一下
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
(配合其它原理文章食用更佳)

