A place to hold mainly reading notes, and some technical stuff occasionally. 这里主要是一些读书笔记、感悟;还有部分技术相关的内容。
目录[-]
上次在线上部署了 Django
项目,原本以为通过 python manage.py runserver 0.0.0.0:8000
启动项目就完成了Django的部署,那可真是太天真了。。
这个项目作为独立的服务,单独部署在另外一台服务器上,过了一段时间,测试反映这个项目访问不到内容,到线上查看服务正常启动,但是就是没有响应,然后就重启了。。经过两三次这样的过程,才意识到部署可能有问题😢😢
其实将开发环境的启动方式应用到了生产环境,先解决问题。
uwsgi
Django的文档这样介绍 uwsgi
:
uWSGI is a fast, self-healing and developer/sysadmin-friendly application container server coded in pure C.
pip install uwsgi
uwsgi --version
uwsgi.ini
vi uwsgi.ini
[uwsgi]
chdir=/opt/hua #项目目录
http=0.0.0.0:8000
wsgi-file=/opt/hua/hua/wsgi.py #uwsgi路径
processes=4
threads=2
master=true
vacum=true
pidfile=/opt/hua/uwsgi.pid #进程id文件路径,自动生成,可用于控制项目启停
daemonize=/opt/hua/uwsgi.log #日志文件路径
module=hua.wsgi
Notes:
https=0.0.0.0:8000, /opt/cert/certfile.crt, /opt/cert/keyfile.key
;django-sslserver
;进入uwsgi.ini所在目录
uwsgi --ini uwsgi.ini # 启动
uwsgi --stop uwsgi.pid # 停止
uwsgi --reload uwsgi.pid # 重启
killall -8 uwsgi # 强制停止
那么问题来了,在生产环境可以使用 python manage.py runserver 0.0.0.0:8000
来启动项目吗?
答案:可以用来测试,但不建议,即使以nohup
的方式启动。
If you have any questions or any bugs are found, please feel free to contact me.
Your comments and suggestions are welcome!