使用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.conf),可以把这个nginx.conf文件作为模版,拷贝为另一个你自己的配置文件zcy.conf

4.修改zcy.conf,如果权限不够在第一行加上

user root your_username; #用户名是在服务器中的用户名

主要修改zcy.conf的server段如下:

server {
	listen 8183;#本地运行端口
	server_name 10.10.255.115;#本地运行ip

	location / {
	include uwsgi_params;
	uwsgi_pass 127.0.0.1:8077; #(本地环回端口)
	}

	location /static {
	root /home/your_username/.../mysite; #到mysite文件夹的绝对路径
	#用nginx来管理静态文件,否则会出现css样式丢失问题
	}

}

5.下一步在django项目文件夹mysite下创建两个文件:

django_wsgi.py文件内容如下:

#coding=utf-8
import os
import sys
import django.core.handlers.wsgi
#if not os.path.dirname(__file__) in sys.path[:1]:
    #sys.path.insert(0, os.path.dirname(__file__))
reload(sys)
sys.setdefaultencoding('utf8')

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

#application = django.core.handlers.wsgi.WSGIHandler()
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

注意:上面注释掉的两行是一些教程中给出的,版本比较老,函数神马的都用不了了~

conf.xml配置文件内容如下:

<uwsgi>
  <socket>:8077</socket>  #本地环回端口,与zcy.conf文件中的相对应
  <chdir>/home/your_username/.../mysite</chdir>  #与zcy.conf中的路径一致,到mysite的绝对路径
  <module>django_wsgi</module>  #指定与本文件同级的django_wsgi.py文件
  <processes>4</processes>  <span style="white-space:pre">	</span>#进程数设置为4
  <daemonize>uwsgi.log</daemonize>  #日志文件
</uwsgi>

基本设置为以上,更多设置可以查看uwsgi配置文件的参数说明。

6.以上均设置好后,就可以上线网站了。

首先,开通服务器上的nginx服务。

命令:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/zcy.conf

(如果该命令出现端口占用的提示,就杀掉上一个占用端口的nginx进程)

然后,在mysite目录里,开通uwsgi。

命令:uwsgi -x conf.xml

7.最后在浏览器中输入10.10.255.115:8183(取决于服务器的ip和端口)去看看吧,一切正常!

时间: 2024-10-06 17:51:24

使用nginx+uwsgi部署django应用的相关文章

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项目

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

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

生产环境使用Nginx+uwsgi部署Django

在本地运行django应用相对来说还是挺方便的,使用自带的runserver启动即可.如果在生产环境部署django,就要多考虑一些问题了.比如静态文件处理,安全,效率等等 在网上找到了不错的部署的教程,讲解的还是很详细的,我就不重新再整理了. 五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(上) – Django中国社区五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(下) – Django中国社区 但是作为记录,我还是要记录下部署中遇

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/

使用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

预装:nginx,  django Django站点tree |Site |-----Blog(自建的项目) |-----Manage.py |-----Site(setting url wsgi-.) |       |-----wsgi.py |-----static |       |-----js |  |-----css |-----uwsgi.log |-----uwsgi-socket.xml 1.      libxml2.libxml2-devel.uwsgi 1.1 安装 注

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

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

通过nginx+uwsgi部署django应用

上传应用 # 创建虚拟环境 pyenv virtualenv online # 进入工程目录,安装包 pip install -r requirements.txt #测试 python manage,py runserver 访问httP://ip:8000 安装uwsgi 1 # 进入虚拟环境 2 pyenv activate online 3 4 pip install uwsgi 5 6 # 测试uwsgi 7 uwsgi –http :8000 –module online.wsgi