Django1.11+Uwsgi+Nginx的生产环境部署

思路:使用runserver可以使我们的django项目很便捷的在本地运行起来,但是这只能在局域网内访问。正式环境部署的话比较安全,而且静态文件的处理方式会比较友好。nginx作为服务器的最前端,负责接收client的所有请求,静态请求由nginx自己处理,非静态请求通过uwsgi传递给django,由django来进行处理。

准备:1  一个django项目,能用runserver启动;

2 服务器基础环境,python2.7+uwsgi;使用pip install uwsgi安装,nignx1.11.10;

第一步:连接django项目和uwsgi

1 编写测试脚本验证uwsgi

运行uwsgi --http :8001 --wsgi-file test.py

通过curl ip:port 来验证uwsgi正常;

2 使用uwsgi配置文件启动django项目

创建uwsgi目录,以及uwsgi.ini配置文件

启动项目 uwsgi --ini uwsgi.ini

测试访问。

第二步:连接nginx和uwsgi

修改nginx.conf

其中root_static 目录为指定的STATIC_ROOT目录

第三步:运行python manage.py collectstatic将所有静态文件归纳到自定义的一个目录下

首先要修改项目的urls.py文件

接着修改settings的文件,将DEBUG设置为False,ALLOWED_HOSTS = ['*']

以及

STATIC_ROOT = os.path.join(BASE_DIR, 'root_static').replace(r'\\','/')

STATICFILES_DIRS = (

os.path.join(BASE_DIR, 'static'),

)

也就是将所有的静态文件收集到项目目录下的root_static目录下

最后运行命令

python manage.py collectstatic

这个命令的执行目的,就是将在开发模式中定义的静态目录,统一拿到STATIC_ROOT目录下。

  1.首先从Django的扩展包中,将admin管理后台的jss 和css等静态文件拷贝到配置文件中的STATIC_ROOT目录下。

  2.然后将STATICFILES_DIRS 列表中所有目录下的内容也拷贝到STATIC_ROOT目录下

第四步:启动uwsgi和nginx服务,用浏览器访问即可

原文地址:http://blog.51cto.com/wenxi123/2114897

时间: 2024-10-11 21:11:07

Django1.11+Uwsgi+Nginx的生产环境部署的相关文章

Django + Uwsgi + Nginx 的生产环境部署

使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑一些问题了.比如静态文件处理,安全,效率等等,本篇文章总结归纳了一下基于uwsgi+Nginx下django项目生产环境的部署 准备条件: 1.确保有一个能够用runserver正常启动的django项目 2.项目已上传到linux 3.linux上已部署好python环境,且已安装好项目所需的模块 安装uwsgi uwsgi是python的一个模块,安装u

Django + Uwsgi + Nginx 实现生产环境部署

一.如何在生产上部署Django? Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 二.uwsgi介绍 uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换. 要注意 WSGI / uwsgi / uWSGI 这三个概念的区分. WSGI是一种Web服务器网关接口.它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask

django+nginx+python3 生产环境部署

一.安装python基础环境 1.安装各类基础模块 yum install  gcc-c++ wget openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel libxml*  -y 2.安装python3环境 2.1)下载python3.6包 wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz 2.2)解压.安装python3

HyperLedger Fabric 1.2 kafka生产环境部署(11.1)

11.1 Kafka模式简介       上一章介绍的Solo模式只存在一个排序(orderer)服务,是一种中心化结构,一旦排序(orderer)服务出现了问题,整个区块链网络将会崩溃,为了能在正式环境中稳定运行,需要对排序(orderer)服务采用集群方式,Hyperledger Fabric采用kafka方式实现排序(orderer)服务的集群,kafka模块被认为是半中心化结构.       顺便提一下,去中心化的BFT(拜占庭容错)排序(orderer)服务集群方式目前还在开发,还没有

生产环境部署squid服务

网络拓扑 该实验使用虚拟机模拟搭建,准备开启2台虚拟机,客户端用本记代替. 1.Squid服务器使用2块网卡.如下图显示: 2.Web服务器与squid服务器配置在同一个网段即可.如下图显示: 3.客户端IP与squid服务器网卡1是在同一网段上即可.如下图显示: 4.查看squid服务器上的eth0和eth1网卡ip地址 5.查看web服务器的ip地址 6.先测试客户端能否ping通squid服务器的网卡1. 7.测试客户端能否ping通web服务器,ping不通正常. 8.安装squid软件

【原创】大数据基础之Airflow(2)生产环境部署airflow研究

一 官方 airflow官方分布式部署结构图 airflow进程 webserver scheduler flower(非必须) worker airflow缺点 scheduler单点 通过在scheduler的dags目录变动dag文件来提交流程 官方分布式部署方案 多个webserver 多个worker CeleryExecutor(依赖redis或rabbitmq) MesosExecutor(依赖mesos) 第三方开源方案ASFC 针对scheduler单点问题,有第三方方案:ht

奉上SCCM生产环境部署Error Logs

奉上SCCM生产环境部署Error Logs SCCM生产环境部署报错日志,供大家查看,如有此类问题,可共同探讨,附件为日志查看器及相关日志.

生产环境部署容器的五大挑战及应对之策

Docker容器使应用程序开发变得更容易,但在生产中部署容器可能会很难. 环境复杂性.生态系统易变性.跨不同分布式基础架构的部署...... 本文将为你解析生产环境部署容器的五大挑战及应对之策. 软件开发人员通常只关注在特定基础架构上运行的单个应用程序.应用程序堆栈或工作负载.然而,在生产环境中,一组不同的应用程序常需在各种技术(例如Java,LAMP等)上运行,而这些技术又需在本地.云上或二者结合的异构基础设施上部署.这给生产环境中容器化应用程序的运行带来了一些挑战: 控制高度密集.快速变化的

Vue生产环境部署

前面的话 开发时,Vue 会提供很多警告来帮助解决常见的错误与陷阱.生产时,这些警告语句却没有用,反而会增加载荷量.再次,有些警告检查有小的运行时开销,生产环境模式下是可以避免的.本文将详细介绍Vue生产环境部署 生产环境 如果用 Vue 完整独立版本 (直接用 <script> 元素引入 Vue),生产时应该用精简版本 (vue.min.js) 如果用 Webpack 或 Browserify 类似的打包工具时,生产状态会在 Vue 源码中由 process.env.NODE_ENV 决定,