`
cooler1217
  • 浏览: 373907 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

Nginx+uWSGI 部署 Django 应用

 
阅读更多

http://simple-is-better.com/news/756

常见的django webapp 部署方式采用FCGI 或 WSGI的方式部署,今天我这备忘下采用uWSGI的部署方式。 目前我这博客就是采用 Nginx + uWSGI + Python + Django 构建的,部署虽没有php那样扔到目录那么方便,但是并发和性能消耗还是非常不错的。这里不想赘述关于FCGI, WSGI,uWSGI之间的比较,网上关于这样的对比测试也有很多,例如这里。这里说下部署过程。 uWSGI 的官方网站 http://projects.unbit.it/uwsgi/ wiki介绍的很详细。 Nginx关于HttpUwsgiModule的介绍http://wiki.nginx.org/HttpUwsgiModule.有这些资料参考,安装部署是很容易的事情。

uWSGI的安装
下载uWSGI的最新版

wget http://projects.unbit.it/downloads/uwsgi-0.9.9.2.tar.gz

因为我最后采用xml配置django app 的部署,所以编译 uWSGI 时候需要把libxml编译进去

sudo apt-get install libxml2-dev

剩下的就简单了

tar zxvf uwsgi-0.9.9.2.tar.gz
cd uwsgi-0.9.9.2
make -f Makefile.Py26 #指定你python的版本,如果你的python是2.7 就应该是 make -f Makefile.Py27
cp uwsgi /usr/sbin/uwsgi

至此 uWSGI 就算是安装完成了,下一步安装 Nginx > 0.8 的版本,因为只有Nginx > 0.8 的版本才支持wsgi

Nginx 安装
Ubuntu 默认源里面的Nginx版本比较旧,这里需要先添加一个Nginx的源,来通过apt-get安装新版本的Nginx

sudo add-apt-repository ppa:nginx/stable
apt-get update
apt-get install nginx

接下来配置Nginx 和 uWSGI部署Django App 了. 首先我们在Nginx中新建一个站点配置文件:

sudo vi /etc/nginx/sites-enabled/blog.hysia.com

内容如下:

server {
    listen   80; ## listen for ipv4; this line is default and implied
    #listen   [::]:80 default ipv6only=on; ## listen for ipv6

    server_name blog.hysia.com;

    access_log /var/log/nginx/blog.hysia.com-access.log ;
    error_log /var/log/nginx/blog.hysia.com-error.log ;

    location / {
            uwsgi_pass 127.0.0.1:8630;
            include uwsgi_params;
    }

}



这样Nginx算是配置完了,现在看我们的Django app如何配置。

配置Django app
配置很简单,几乎不用改动你app的任何文件。
首先在你的app目录创建个wsgi.py 文件,内容如下:

import os,sys

if not os.path.dirname(__file__) in sys.path[:1]:
    sys.path.insert(0, os.path.dirname(__file__))
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

from django.core.handlers.wsgi import WSGIHandler
application = WSGIHandler()
然后在app目录创建个django.xml文件,作为uWSGI运行的配置文件,内容如下:

<uwsgi>
    <socket>127.0.0.1:8630</socket>
    <chdir>/home/hysia/website/blog</chdir>
    <pythonpath>..</pythonpath>
    <module>wsgi</module>
</uwsgi>



最后一步,运行 uWSGI 就行了,如下:

uwsgi -x /home/hysia/website/blog/django.xml

就这样你的Django app 就用 uWSGI hold住了。当然django.xml的配置远不止这些,比如log文件,内存限制等等,具体的大家可以参看 http://projects.unbit.it/uwsgi/wiki/Example uWSGI handle 多个 Django app 的时候性能更出众,更多的探索自己去动手实践吧。Nginx+uWSGI 部署 Django 应用
分享到:
评论

相关推荐

    Nginx+Uwsgi+Django+Vue部署

    Nginx+Uwsgi+Django(python3)+Vue部署,一步步实现。网上找了N多篇文章都没成功,特意记录,以免其他同学踩坑

    用uwsgi+daphne+Nginx+supervisor部署Django项目.docx

    ### 使用uwsgi+daphne+Nginx+supervisor部署Django项目的详细步骤 #### 一、概述 在本文档中,我们将详细介绍如何在Linux环境下利用uwsgi、daphne、Nginx以及supervisor来部署Django项目。这种方式能够有效地提高...

    五步教你实现使用Nginx+uWSGI+Django方法部署Django程序1

    五步教你实现使用Nginx+uWSGI+Django方法部署Django程序 本文主要介绍如何使用Nginx+uWSGI+Django方法部署Django程序,通过五个步骤来详细阐述uwsgi+django的部署方式。下面是相关的知识点: 1. 环境介绍 在部署...

    用Django全栈开发——29. 部署之阿里云CentOS+Nginx+uWsgi+Django.html

    阿里云CentOS+Nginx+uWsgi+Django部署Django,《用Django全栈开发》系列文章最后一篇,感兴趣的同学可以查看。

    解决nginx+uwsgi部署Django的所有问题(小结)

    在Django应用部署中,Nginx主要负责接收来自客户端的HTTP请求,然后根据配置将这些请求转发给uWSGI,或者直接处理静态文件请求。 uWSGI则是一个应用服务器,它可以承载多种Web框架,包括Django。uWSGI能够处理多...

    Ubuntu16.04下Nginx+uwsgi部署Django项目

    对于Python初学者,部署会踩很多,这里是自己初学时的经验,所以粘出来和大家分享

    nginx+uwsgi部署步骤.md

    nginx+uwsgi部署步骤.md

    uwsgi+daphne+Nginx+supervisor部署Django

    uwsgi+daphne+Nginx+supervisor部署Django 在本文中,我们将详细介绍如何使用 uwsgi、daphne、Nginx 和 supervisor 部署 Django 项目。这些技术栈组合可以提供高性能、可扩展的 Web 服务。 uwsgi 介绍 uwsgi 是...

    centos+nginx+mysql+django+uwsgi+python

    ### CentOS + Nginx + MySQL + Django + uWSGI + Python 安装指南与实践 #### 一、环境搭建概述 本文将详细介绍如何在CentOS系统上安装并配置Django Web框架及其相关组件(Nginx、MySQL、uWSGI等),以及如何关闭...

    nginx+uwsgi启动Django项目的详细步骤

    在部署Django项目时,使用Nginx和uWSGI作为前端和应用服务器是一种常见且高效的做法。本文将详细介绍使用Nginx作为Web服务器,uWSGI作为应用服务器,以及Django框架本身,来启动和运行Django项目的详细步骤。 首先...

    Django+Nginx+UWSGI+virtualenv项目部署

    ### Django+Nginx+UWSGI+virtualenv项目部署知识点详解 #### 一、Django部署背景与原理 **背景介绍:** 在Web应用开发中,尤其是基于Django框架的应用,开发者通常会在本地环境中利用Django自带的轻量级开发服务器...

    python毕业设计-基于Django+nginx+uwsgi的个人博客系统设计与实现+使用说明.zip

    python毕业设计-基于Django+nginx+uwsgi的个人博客设计与实现+使用说明.zippython毕业设计-基于Django+nginx+uwsgi的个人博客设计与实现+使用说明.zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的...

    Ubuntu系统搭建django+nginx+uwsgi的教程详解

    主要介绍了Ubuntu系统搭建django+nginx+uwsgi的思路详解,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下

    腾讯云部署Django+Nginx+uWSGI+SimpleUI.解决 .svg文件不能显示问题

    而uWSGI是一个高性能的应用服务器,能够处理WSGI协议,使得Django应用可以被部署。SimpleUI则是一个Django管理界面的美化插件,提供了美观的用户界面。但是,当使用SimpleUI时,可能会遇到SVG静态文件无法正确显示的...

    Centos+Nginx+UWSGI+Django搭建高性能WEB服务器

    本文将详细介绍如何在CentOS系统上搭建使用Nginx作为Web服务器、UWSGI作为应用服务器、Django作为后端框架的高性能Web应用。 ### 关键技术点概述 1. **CentOS**: CentOS是基于Red Hat Enterprise Linux构建的一个...

    Ubuntu系统Daphne + Nginx部署Python Django项目精讲【含代码说明】

    在本教程中,我们将深入探讨如何在Ubuntu系统上使用Daphne和Nginx部署Python Django项目,同时利用Supervisor进行进程管理。首先,Django 3.0开始支持ASGI(Asynchronous Server Gateway Interface)应用程序,使得...

    meiduo:Django + Vue 前后端分离商城项目,采用Docker双容器部署nginx + uwsgi

    部署方式:docker容器部署 nginx(vue) + uwsgi(django) 给出体验地址: 121.4.47.229:8080 因为钉钉、QQ、支付宝等回调地址的原因,为了更好的体验,请在本机hosts中添加: 121.4.47.229 image.meiduo.site 121.4.47...

    nginx+uwsgi+mysql+python

    Nginx+Uwsgi+Mysql+Python 环境搭建详细过程分析 本文将详细介绍 Nginx、Uwsgi、Mysql 和 Python 环境的搭建过程,并对过程中出现的问题进行分析。 一、升级 Python CentOS 6.5 默认的 Python 版本是 2.6,因此...

    【知了课堂】Django部署笔记:Nginx+uwsgi

    从提供的文件信息来看,该知识点主要涉及了Django项目的部署流程,使用的技术栈为Nginx和uwsgi,同时还包括了将代码上传到服务器的Git操作。下面将详细说明这些知识点。 ### Django项目部署过程 #### 准备工作 1....

Global site tag (gtag.js) - Google Analytics