部署

服务器环境配置

  • 在本地的虚拟环境中,项目根目录下,执行命令收集所有的包

  • pip freeze > plist.txt
  • 安装并创建虚拟环境,如已创建则跳过此步 sudo apt-get install python-virtualenv

  • sudo apt-get install python-virtualenv
    sudo easy_install virtualenvwrapper
    mkvirtualenv [虚拟环境名称] workon [虚拟环境名称] pip install -r plist.txt
     
  • 更改settings.py文件

  • DEBUG = False
    ALLOW_HOSTS=['*',]#表示可以访问服务器的ip
  • 启动服务器,运行正常,但静态文件无法加载

    WSGI


  • 在生产环境中使用WSGI

  • WSGI:Web服务器网关接口,英文为python web server gateway interface,缩写wsgi,是python应用程序或框架和web服务器之间的一种接口,被广泛接受

  • WSGI没有官方的实现,因为WSGI更像是一个协议,只要遵照这些协议,WSGI应用都可以在任何服务器上运行

  • 命令 django-admin startproject会生成一个简单的wsgi.py文件,确定了settings、application对象

    • application对象:在python模块中使用application对象与应用服务器交互
    • settings模块:Django需要导入settings模块,这里是应用定义的地方

uWSGI

  • uwsgi实现了wsgi的所有接口,是一个快速、自我修复、开发人员和系统管理员友好的服务器

  • uWSGI代码完全用C编写

  • 安装uWSGI

    pip install uwsgi
    [uwsgi]
    socket=外网ip:端口(使用nginx连接时,使用socket)
    http=外网ip:端口(直接做web服务器,使用http)
    chdir=项目根目录
    wsgi-file=项目中的wsgi.py文件的目录,相对于项目根目录
    processes=
    threads=
    master=True
    pidfile=uwsgi.pid
    daemonize=uswgi.log
  • 停止:uwsgi --stop uwsgi.pid
  • 重启:uwsgi -- reload uwsgi.pid
  • 使用http协议查看网站运行情况,运行正常,但是静态文件无法加载
  • socket 和http 地址选一个即可,另外一个注掉,另外需要注意端口占用

nginx

  • 使用nginx的作用

    • 负载均衡:多台服务器轮流处理请求
    • 反射代理:隐藏真实服务器
  • 实现构架:客户端请求nginx,再由nginx请求uwsgi,运行django框架下的python代码

  • nginx+uwsgi也可以用其他框架的python web代码,不限于django

  • 到官网下载nginx压缩文件或通过命令安装

  • sudo apt-get nginx
  • 这里以下载压缩文件为例

    解压缩:
    tar zxvf nginx-1.6..tar.gz

    进入nginx-1.6.3目录依次执行如下命令进行安装:
    ./configure
    make
    sudo make install
  • 查看版本:sudo sbin/nginx -v

  • 启动:sudo sbin/nginx

  • 停止:sudo sbin/nginx -s stop

  • 重启:sudo sbin/nginx -s reload

  • 通过浏览器查看nginx运行结果

  • 指向uwsgi项目:编辑conf/nginx.conf文件

    sudo conf/nginx.conf
    在server下添加新的location项,指向uwsgi的ip和端口
    location /{
    include uwsgi_params;将所有的参数转到uwsgi下
    uwsgi_pass uwsgi的ip和端口;
    }

部署django到服务器的更多相关文章

  1. Django项目部署到Apache服务器

    本文讲述的是在阿里云服务器(ECS)上部署Django项目于Apache,服务器操作系统为ubuntu,公网Ip地址为123.56.30.151. 将Django部署到Apache服务器的原因 Dja ...

  2. #阿里云#云服务器部署Django(基础篇)

    前言 本人能力有限,本文只是简单介绍基础部署流程,没有过多考虑系统安全等因素,请谅解.初学者参考了解,大神勿喷. 纯测试部署,采用阿里云ECS,系统Ubuntu 16.04 64位,部署采用nginx ...

  3. 腾讯云服务器部署 django项目整个流程

    CentOS7下部署Django项目详细操作步骤 前记:购买腾讯云服务器,配置自选,当然新用户免费体验半个月,我选择的系统是centos7系统版本, 接下来我们来看整个配置项目流程. 部署是基于:ce ...

  4. 如何在阿里云服务器部署Django

    这段时间一直在搞我的网站——大学易,一个大学生评课网站,主要是提供课程的详尽信息(比如老师会不会经常点名,有没有期中考试),课程资料的下载等等. 这篇文章主要是分享给那些菜鸟,就是像我一样完全没有搞过 ...

  5. django项目部署在Apache服务器中,静态文件路径的注意点

    django Apache部署静态文件的路径注意点 静态文件放在对应的 app 下的 static 文件夹中 或者 STATICFILES_DIRS 中的文件夹中. 当 DEBUG = True 时, ...

  6. 云服务器上利用Docker部署Django项目

    转载别人的,请看下面链接 云服务器上利用Docker部署Django项目

  7. 将 Django 应用程序部署到生产服务器

    原文出自: http://www.ibm.com/developerworks/cn/opensource/os-django/ 比较有启发性质的一篇文章,会避免很多弯路 Django 是一个基于 P ...

  8. nginx+uwsgi部署Django项目到Ubuntu服务器全过程,以及那些坑!!!

    前言:自己在windows上用PyCharm编写的Django项目,编写完后在windows上运行一点问题都没有,但是部署到服务器上时却Bug百出.百度,CSDN,sf,各种搜索寻求解决方案在历时3天 ...

  9. apache2+django+virtualenv 服务器部署实战

    目录 基本配置 配置python环境 安装 python.pip 安装 virtualenv 配置python虚拟环境 配置 apache2 安装 apache2 安装 mod-wsgi 服务 部署d ...

随机推荐

  1. servlet规范--Servlet 规范其实就是对 HTTP 协议做面向对象的封装

    Servlet规范 一个最基本的 Java Web 项目所需的 jar 包只需要一个 servlet-api.jar ,这个 jar 包中的类大部分都是接口,还有一些工具类,共有 2 个包,分别是 j ...

  2. Tomcat 类加载器的实现

    Tomcat 内部定义了多个 ClassLoader,以便应用和容器访问不同存储库中的类和资源,同时达到应用间类隔离的目的.本文首发于公众号:顿悟源码. 1. Java 类加载机制 类加载就是把编译生 ...

  3. 8、VUE自定义组件

    1.为什么要使用自定义组件? 自定义组件是用来封装复杂的内容,提高可重用性,比如封装复杂的表格组件.日历组件.图片轮播组件等. 2.自定义组件 2.1. 全局组件 全局组件是每个Vue对象都能使用的组 ...

  4. C#读取Excel文件,准换为list

    经常会用到,废话不多说直接贴代码 //读取Excel文件 public static DataTable ReadExcelToTable(string path)//excel存放的路径{try{ ...

  5. Redis常用配置和命令总结

    Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言 ...

  6. 【JVM学习笔记二】垃圾收集器与内存分配策略

    1. 概述 1) GC的历史比Java久远 2) GC需要完成的三件事: | 哪些内存需要回收 | 什么时候回收 | 如何回收 3) Java内存运行时区域各个部分: | Java虚拟机栈.计数器.本 ...

  7. Django模型层(models.py)之模型创建

    Django数据库操作是十分重要的内容,这两天简单学习了数据库的操作,这里做个总结. 1.ORM简介 简单的来说,ORM就是对象-关系-映射.它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖 ...

  8. OCR6:Custom Traineddata

    参考:https://groups.google.com/forum/#!msg/tesseract-ocr/MSYezIbckvs/kO1VoNKMDMQJ V4版本代码示例 : import py ...

  9. mysql 查询当天数据

    查询当天数据 select * from tab where FROM_UNIXTIME(fabutime, '%Y%m%d') = 20121217;   mysql TO_DAYS(date) 函 ...

  10. Centos 7配置阿里云yum源

    1. 禁用 yum插件 fastestmirror 1)修改插件的配置文件 # cp /etc/yum/pluginconf.d/fastestmirror.conf /etc/yum/pluginc ...