网上查询得知:Django 关闭DEBUG模式后,就相当于是生产环境了,Django官网上指出如果是django框架一旦作为生产环境,那么它的静态文件访问接口就不应该从Django框架中走了,应该有独立的 web环境,首推nginx 。 举例如图: 但是一旦放到生产环境(也就是关闭掉DEBUG模式),你在nginx中就要单独做访问/static/目录的路由。 2.然后将STATICFILES_DIRS 列表中所有目录下的内容也拷贝到STATIC_ROOT目录下 静态目录拷贝后的结果如图: 对是拷贝,不是剪切,所以生产中最好把开发测试目录过滤掉在放到生产环境。 STATIC_ROOT 是Django框架放到生产环境中的唯一的一个静态目录 而当你设置DEBUG=False时,就必须在Django框架前端部署nginx或者其他web服务器来提供静态访问入口
所以如何部署Django不是Django所需要关心的。 项目比如是一个中国人 uwsgi相当于日语,WSGI相当于汉语 日本人如果想和中国人交流必须使用一个翻译官,这个翻译官必须要董很多种语言 uWSGI:相当于就是一个即董uwsgi(日语)又董WSGI(汉语) 生产环境部署 在centos 7中安装python3环境: # 1、yum更新yum源 yum update # 2、安装Python 3.7所需的依赖否则安装后没有pip3包 yum install zlib-devel /configure --enable-optimizations # 执行该代码后,会编译安装到 /usr/local/bin/ 下,且不用添加软连接或环境变量 make && make install export PATH=$PATH:/usr/local/python3/bin [root@linux-node1 testProj]# source /etc/profile # 修改完后,还需要让这个环境变量在配置信息中生效
领8888元新春采购礼包,抢爆款2核2G云服务器95元/年起,个人开发者加享折上折
前言 Django在开发过程中可以使用python3 manage.py runserver启动web服务,但是这个服务只是用来开发调试使用的。 [root@server01 ~]# 下载完毕后,还需要配置一下环境变量。 [root@server01 performance]# 测试uwsgi启动django服务 命令说明: cd /your/django/path # 进入项目目录 uwsgi --http ip:port 使用uwsgi配置文件启动django项目 在django项目下,创建uwsgi.ini配置文件: [root@server01 performance]# > uwsgi.ini 编辑vim uwsgi.ini Mon Oct 14 19:11:28 2019] POST / => generated 0 bytes in 671 msecs (HTTP/1.1 302) 到了这里已经部署好了 uwsgi + django
使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑一些问题了。 比如静态文件处理,安全,效率等等,本篇文章总结归纳了一下基于uwsgi+Nginx下django项目生产环境的部署 准备条件: linux上已部署好python环境,且已安装好项目所需的模块 安装python 环境,请参考以下链接 http://www.py3study.com/Article/details/id/320.html 创建django项目 [root@localhost ~]# cd /www 使用命令:pip3 install --upgrade pip 进行升级 基于uwsgi+django的实现 1.使用命令启动uwsgi 先关闭上面启动的Django项目,使用Ctrl+c,就可以取消。 准备静态文件 下载Bootstrap,官方网址为: http://www.bootcss.com/ 下载最新稳定版本3.3.7,选择用于生产环境的 https://v3.bootcss.com/getting-started
如果在生产环境部署django,就要多考虑一些问题了。比如静态文件处理,安全,效率等等 在网上找到了不错的部署的教程,讲解的还是很详细的,我就不重新再整理了。 五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(上) – Django中国社区 五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(下) – Django 中国社区 但是作为记录,我还是要记录下部署中遇到的问题: (一)解决Django生产环境部署的静态文件丢失问题 有些时候,把程序放在生产环境,不过出于一些原因还没有配置nginx等环境,关闭了Debug 使用如下命令即可成功使用静态文件 python manage.py runserver 0.0.0.0:8000 --insecure (二)部署生产环境之前的准备 正如(一)中的方法只是测试时使用,如何处理静态文件 在manage.py同级目录新建restart.sh脚本,内容如下: killall uwsgi uwsgi -x django_socket.xml (这个django_socket.xml根据你起得名字替换
一、概述 使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑一些问题了。 比如静态文件处理,安全,效率等等,本篇文章总结归纳了一下基于uwsgi+Nginx下django项目生产环境的部署 uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。 apt-get install -y python3-pip 安装虚拟环境 pip3 install virtualenv 创建虚拟环境 sudo mkdir /virtualenvs cd /virtualenvs /bin/pip3 install django 二、运行django项目 创建django项目 root@ubuntu:~# mkdir /www root@ubuntu:~# cd /www/ root 的 wsgi 文件,表示mysite1/wsgi.py home 虚拟环境目录,写绝对路径 daemonize 进程在后台运行,并将日志打到指定的日志文件 启动django项目 root@ubuntu:
我们知道,部署Django到生产环境时,settings.DEBUG必须设置为False, 否则会带来很大的安全隐患。 那作为开发者怎样才可以跳过这个限制了,可以通过自定义中间件实现: import sys from django.views.debug import technical_500_response class
本文主要讲述了如何一步步在生产环境上部署django和vue,操作系统默认为centos 说明:后文中出现的以下字符串均表示具体的路径或者名称,含义如下: DJANGO_DIR----表示django的工程根目录 在collectstatic运行的时候会把STATICFILES_DIRS中的静态文件拷贝到这个目录中,达到从开发环境到生产环节过程中移植静态文件的作用。 STATICFILES_DIRS用来配置一些开发环境下生成的静态文件的地址,即编译好的VUE_STATIC_DIR 在url.py中添加路由 url(r'^static/(? , 配置好以上配置后,编译好的静态文件还在VUE_STATIC_DIR目录下,我们最终要执行下面命令才能把STATICFILES_DIRS中的静态文件拷贝到STATIC_ROOT这个目录中,也就是最终生产环境指定的 //ip:8080/admin 时,也不会出现找不到css的问题了 当然这种方式其实是通过django的路由来访问静态文件的,一般的,生产环境不会通过django来转发静态文件,而是通过其他服务器进行转发
之前项目中使用了 webscoket 进行实现消息实时通知,我们是另外单独运行了一个消息推送服务项目,使用了django-channels 实现websocket,项目使用的是asgi 协议,不是原先的 1.安装部署daphne 安装 django-channels 的时候 daphne 就已经连带一起安装了 在项目的根目录新建一个asgi.py文件,和 wsgi文件同级,内容如下: import os import django from channels.routing import get_default_application os.environ.setdefault("DJANGO_SETTINGS_MODULE ", "项目名称.settings") django.setup() application = get_default_application() 2.测试 daphne 配置是否正确: 输入如下命令
在测试环境下,我们可以简单的使用 python manage.py runserver 8080 启动一个 Django,由于尚未通过安全审核或性能测试,而且是单线程,并发能力也不强,因此不能在生产环境中使用 生产环境下,需要使用专门的 Web 服务器,像 Gunicorn 或 uWSGI。 今天就来分享一下如何使用 nginx + gunicorn 来部署生产环境的 Django app。 Django app 只是它支持的其中一种框架。 安装 pip install gunicorn gunicorn 没有依赖项,因此下载后可以很容易迁移到生产环境。 8000 即可启动生产级别的 Web 服务,前提是你的 Django settings 也是生产环境的配置,例如 Debug = False。 Django app,生产环境下 Nginx 的反向代理,最好都使用 socket 来通讯,至于为什么,可以参考前文redis 是单线程,是怎么解决高并发问题的。
Nginx uWSGI #0 环境 CentOS6.8 Python3.7.3 uWSGI==2.0.18 Django==2.0.7 Vue.js 2 Nginx #1 需求分析 前后端分离项目,前端 Vue.js后端Django 部署到CentOS服务器上 #2 前提条件 能运行起来的Vue项目(在这里我用我的实际项目) 能运行起来的Django(在这里我用我的实际项目),包括第三方库/数据库这里不具体操作 #3 开始 #3.1 部署Django Django 在这里仅仅是提供接口,所以不会涉及一些静态文件的处理 #3.1.1 后端大致流程 首先以下几个东西需要弄清楚他们的关系 Nginx ( 反向代理 ) uWSGI ( webserver,可以理解为PyCharm,用来启动Django的,其实并不是,先这么理解) Django ( 后端, 提供api, 最核心的东西 ) 将Django项目传到服务器上 django项目(重点,这才是生产部署的方法) 新建文件 script // 和 manage.py 同级目录下创建 script 文件夹 cd /opt/blog/api/blog_code/ mkdir
前言 如果我们需要使用webpack,就需要依赖node环境 nvm node npm webpack@cli webpack nvm安装 nvm是一个用来管理node版本的工具。 https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash 2.创建nvm文件夹 mkdir ~/.nvm 3.配置环境变量 编辑环境 vim ~/.zshrc 在文件最后写入环境变量 export NVM_DIR="$HOME/.nvm" [ -s "/usr/local/opt/nvm/nvm.sh" ] && . 3.安装完成后,还需要配置环境变量。在我的电脑->属性->高级系统设置->环境变量->系统环境变量->Path下新建一个,把nvm所处的路径填入进去即可!
VueJs为客户端语言,所以部署的时候是不需要基于nodejs或其他服务器运行环境,只需要像其他静态站点的方式发布就可以了,下面介绍一下VueJs具体发布的流程还有需要注意的点。
大部分配置参考kyligence的生产环境推荐配置即可,但是该推荐有些配置没放进去,本文将描述几个关键属性需要自己手工配置的。 kylin.cube.aggrgroup.is-mandatory-only-valid=true kylin.query.timeout-seconds=60 kylin.job.allow-empty-segment=false 参考 生产环境推荐配置
rom1v 认为这里连接数不多,List 的性能要高于 Map,但是生产用起来才发现由于回收不及时,这里的连接数经常是上千的量级。 业务优化 以下是我们在生产环境使用时,出于性能提升或审计需要实现的一些功能。虽然不是必须的功能,但也算是一种不错的实践。
上周有小伙伴咨询,开发/测试/生产环境的概念,今天就做一个小结~ 1、开发环境 开发环境是程序员专门用来写代码的环境,一般是自己本地的电脑,也可以是远程的云服务器。 产品和测试同学验收没问题后,就把代码发布到生产环境啦。 3、生产环境 生产环境是正式对外的,给客户使用的环境。 开发把测试好的代码“部署”到生产服务器后,准备一个生产域名,外面用户通过生产域名访问。 为了数据隔离和安全,数据库也会分为这3种环境,不同环境分别对应不同的数据库。 细心的同学可能会发现,有些公司还会多出一种环境,就是“预发布环境”。 预发布环境的配置、代码和数据库跟生产环境一模一样,不一样的地方是,预发布环境有自己的独立域名。 需要“预发布环境”的原因可能有以下原因: 1、需要生产数据库才能测试这个新功能。 2、对测试要求非常苛刻,在发布到生产环境前,需要模拟生产环境的一切配置,完全走一遍没问题再发布到生产环境才更安全。 --- end ----
大家搜索django并看到本文的时候,相信已经知道django是用来干嘛的了,我也就不在多说废话了。 简单来说,这就是Django所能做的。django自带后台和登录系统,还有很多模板,降低耦合度,当你能理解django的精髓的时候你就会觉得开发一个网站是如此简单。 安装之后我们需要配置环境变量,不然我们不能在命令行cmd中使用Python命令。 步骤 1、单击右键我的电脑->属性->高级系统设置->环境变量 2、在系统变量中找到path变量 3、添加Python的安装目录, 接下来我们就可以安装django Django安装 pip安装(最简单的方式 然后执行: python setup.py install 然后开始安装,Django将要被安装到Python的Lib下site-packages 在然后如配置Python环境变量一样,将这几个目录添加到系统环境变量中
项目上线,测试环境正常,上UAT环境后访问不到数据,于是开始步步分析,细细琢磨,最终成功上UAT,但影响了上生产环境的时间,造成项目延时发布,第一次遇到这么奇怪的事情,之后就是2017年12月26(周二 )的上生产环境,不过可怕的事情还是发生了:本地、测试、UAT环境都正常,生产环境有访问不到数据,直到12月27号2:00才解决,以上是问题情景。 这边也想了很长时间:为什么UAT环境代码好好的,正式环境就不行了,拉的是一套代码,不同的地方就是Disconf配置文件了(这里我前后核对了不下六遍,前两遍确实有问题及时做了修改,最后一遍我是一个一个字核对的 以下是我这边出现访问不到数据的三个情况: 1、Disconf环境配置文件的配置(本地、测试、UAT及生产环境都会有所差别),具体看各个环境的访问地址; 2、系统中访问的子系统接口是否同步上了相应的环境, 在相应环境上直接访问接口验证是否部署成功; 3、httpClient工具类中http和https是有区别的,线上环境和UAT环境一定要是https://开头的(从发现这个问题和解决花了我不少时间),https
扫码关注腾讯云开发者
领取腾讯云代金券