nginx+uwsgi部署django项目

操作可参考http://www.linuxyw.com/353.html (nginx+uwsgi+django+python环境部署文档)

这里只说明几点我的配置

环境:

Nginx版本:1.7.9

Django版本: 1.6.8

Python版本:2.7.5

Uwsgi版本:2.0.9

安装MySQL-python:

最好源码安装,yum install -y MySQL-python可能因为路径问题import MySQLdb失败,下载地址:

http://sourceforge.net/projects/mysql-python/files/mysql-python/

tar zxvf MySQL-python-1.2.3.tar.gz
cd MySQL-python-1.2.3
python setup.py install

django项目的路径和结构图:

(fabric-bolt)[[email protected] fabric_bolt]# tree -d -L 3

`-- work
    |-- myweb
    |   `-- static
    `-- work

创建django项目:

项目位置:/www/fabric-bolt/lib/python2.7/site-packages/fabric_bolt/(这路径下面已经有其他的django app)

创建项目:

cd  /www/fabric-bolt/lib/python2.7/site-packages/fabric_bolt
django-admin.py startproject work

配置Nginx:

在nginx配置文件中添加以下内容:

vim /usr/local/nginx/conf

        location / {
            root /www/fabric-bolt/lib/python2.7/site-packages/fabric_bolt/work;
            include   uwsgi_params;
            uwsgi_pass  192.168.1.121:9000;
            uwsgi_param UWSGI_CHDIR /www/fabric-bolt/lib/python2.7/site-packages/fabric_bolt/work;
            uwsgi_param UWSGI_SCRIPT django_wsgi;
            access_log /usr/local/nginx/logs/access.log;
        }
        location /static/ {
            alias /www/fabric-bolt/lib/python2.7/site-packages/fabric_bolt/work/myweb/static/;
            index index.html;
}

work是项目名,mynew是app名

配置uwsgi:

在nginx中添加一个uwsgi配置文件:

vim /usr/local/nginx/conf/uwsgi.xml

<uwsgi>
<socket>192.168.1.121:9000</socket>
<pidfile>/usr/local/nginx/conf/uwsgi.pid</pidfile>
<processes>2</processes>
<pythonpath>/www/fabric-bolt/lib/python2.7/site-packages</pythonpath> #注意,按照原文配置/tmp/uwsgi.log总是报错"ImportError: No module named django.core.handlers.wsgi",但是django路径在sys.path中存在,在python命令行中输入import django.core.handlers.wsgi也正常,这就显得很矛盾。怎么办?就是添加这句!添加后启动uwsgi的时候/tmp/uwsgi.log会提示"added /www/fabric-bolt/lib/python2.7/site-packages/ to pythonpath.",这才是正确的!
<module>django_wsgi</module>
<chdir>/www/fabric-bolt/lib/python2.7/site-packages/fabric_bolt/work</chdir>
<daemonize>/tmp/uwsgi.log</daemonize>
</uwsgi>

创建django应用模块:

vim /www/fabric-bolt/lib/python2.7/site-packages/fabric_bolt/work/django_wsgi.py

import os,sys

#os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myweb.settings")
#path = "/www/fabric-bolt/lib/python2.7/site-packages/fabric_bolt/work"
#if path not in sys.path:
 #   sys.path.insert(0, "/www/fabric-bolt/lib/python2.7/site-packages/fabric_bolt/work")

os.environ["DJANGO_SETTINGS_MODULE"] = "work.settings"

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

访问测试:

出现以下界面,说明配置成功

copy几张图片或html等文件到/www/fabric-bolt/lib/python2.7/site-packages/fabric_bolt/work/myweb/static/目录下,可以访问到:

时间: 2024-08-24 07:44:05

nginx+uwsgi部署django项目的相关文章

结合Nginx+Uwsgi部署Django项目

大致想法以及背景: 刚开始创建Django项目,可以通过runserver命令更方便地调试程序,但是如果当一个项目完成了之后,需要部署到真正的环境,就需要考虑其稳定性.之前在写毕设的时候,写过一个自动化运维监控的项目,部署在自己的阿里云服务器上.那时候没啥经验,直接一个(pyhon runserver 0.0.0.0:8888 &)让项目在后台自己跑.所以对一些项目挂掉,数据库连接失败等问题不能够及时定位解决.所以现在花点时间结合Nginx+Uwsgi部署自己的项目,利用Nginx处理静态资源请

使用Nginx+uWSGI部署Django项目

1.linux安装python3环境 参考链接:https://www.cnblogs.com/zzqit/p/10087680.html 2.安装uwsgi pip3 install uwsgi ln -s /usr/local/python3/bin/uwsgi /usr/local/bin/uwsgi #建立软链接 uwsgi --version #检查安装成功 3.基于uwsgi+django项目部署 django项目目录结构(orange_manage为app): uwsgi --ht

nginx + uwsgi 部署 Django+Vue项目

nginx + uwsgi 部署 Django+Vue项目 windows 本地 DNS 解析 文件路径 C:\Windows\System32\drivers\etc 单机本地测试运行方式,调用django第三方的wsgifef单机模块,性能很低 python3 manage.py runserver 0.0.0.0:8000 使用uwsgi 去启动django项目,支持并发更多 准备前后端代码 先从vue前端搞起 解决node环境 更改vue发送请求的接口地址, 这个vue发送的地址,应该是

nginx+uwsgi部署django的简单介绍

1.安装django  环境ubuntu:sudo pip install django 2.新建一个django项目 命令:django-admin.py startproject  wlwebsite1 启动项目:python manage.py runserver 0.0.0.0:8000 浏览器查看,如下显示即正常 3.django项目有了,现在安装uwsgi 环境ubuntu:sudo pip install uwsgi 安装成功后看uwsgi版本:uwsgi --version ws

使用uWSGI部署django项目

先说说什么是uWSGI吧,他是实现了WSGI协议.uwsgi.http等协议的一个web服务器,那什么是WSGI呢? WSGI是一种Web服务器网关接口.它是一个Web服务器(如nginx)与应用服务器(如uWSGI服务器)通信的一种规范(协议). 还有一种wsgi,uwsgi是一种线路协议而不是通信协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信.uwsgi协议是一个uWSGI服务器自有的协议,它用于定义传输信息的类型(type of information). 部署步骤: 1.

Debian7下初次尝试Nginx+Uwsgi部署Django开发环境

之前一直都用的是新浪的SAE,但是由于各种限制,各种不爽,终于下定决心开始折腾VPS,于是在搬瓦工上买了个年付VPS,开始折腾之旅. 由于对Linux一窍不通,所以不知道如何在Linux上部署开发环境,因此事先查询了好多的资料,找到几篇可以参考的文章,由于系统版本,Nginx版本,Python版本不同,配置的情况可能也略有不同,所以先照着别人的折腾看看. debian一般默认就安装有python,所以省略这一步,不过有些系统python版本太低,需要先升级Python到需要的版本,怎么升级就不介

uwsgi部署django项目—报内部错误

在django项目目录下建立uwsgi.ini文件: [uwsgi] #使用nginx连接时使用 #socket=127.0.0.1:8080 #直接做web服务器使用 http=127.0.0.1:8080 #项目目录 chdir=/Users/userName/PycharmProjects/linaxi #项目中wsgi.py文件的目录,相对于项目目录 wsgi-file=linaxi/wsgi.py processes=4 threads=2 master=True pidfile=uw

使用nginx+uwsgi部署django应用

使用过django来开发网页的人都知道,django的manage.py自带了一个runserver命令,这个命令使得本地调试非常方便,然而在真正上线网站时对并发能力的支持非常重要,本教程教你用nginx+uwsgi来将django应用部署在服务器上. 教程: 1.首先保证django项目在本地调试完毕.(这是废话) 2.在服务器安装好nginx和uwsgi两个软件.(yum或者apt-get) 3.找到nginx.conf文件(位置在/usr/local/nginx/conf/nginx.co

生产环境使用Nginx+uwsgi部署Diango项目

环境:CentOS6.5 + Nginx1.11.5 + Python3.5.2 1. 安装基础软件包 yum install -y zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel  2. 安装Python3.5.2版本 源码包下载,戳我 wget https://www.python.org/ftp/python/3.5.2/Python-3.5