1.安装nginx(/export/servers/nginx/)###

保证/export/servers/nginx/是nginx的安装目录

/export/servers/nginx/conf/domain/xxx应用配置文件

2.部署django环境,保证python manage.py runserver 0.0.0.0:8000能正常跑起来,websocket能调通###

1.项目名称:Python_20160906,里面有2个应用

2.一个应用名字叫app,一个叫做api

3.项目路径/export/App/DevOPS/Python_20160906



uwsgi相关的东西在下图这个配置文件中(项目settings.py文件目录下)

3.uwsgi###

(1)安装

pip install uwsgi

(2)测试是否安装成功(uwsgi开启服务)

--home:指定virtualenv的环境目录,如果没用virtualenv的话不用指定可选
--chdir:指定django项目的根路径:/export/App/DevOPS/Python_20160906
-w 指定django项目的wsgi文件位置,就是如图2的东西(因为项目目录为/export/App/DevOPS/Python_20160906,项目目录下还有个同名目录Python_20160906,存放项目配置文件的地方,里面有个wsgi.py文件,所以写作Python_20160906.wsgi)
# uwsgi --http :8000 --home /home/siva/Env/first --chdir /export/App/DevOPS/Python_20160906 -w Siva_First.wsgi
uwsgi --http :8000 --chdir /export/App/DevOPS/Python_20160906 -w Python_20160906.wsgi

(3)直接访问验证

curl http://127.0.0.1:8000/

4.写uwsgi配置文件(肯定不能手工命令起啊)###

mkdir -p /export/servers/nginx/conf/uwsgi/
cd /export/servers/nginx/conf/uwsgi/
vim Python_20160906.ini

<1>project:项目名

<2>chdir:指定django项目的根路径

<3>module:对应了上面命令行启动的-w参数,指定django项目的wsgi文件位置

<4>master:是否有主进程

<5>processes:几个工作进程

<6>socket:创建的socket套接字文件位置

<7>chmod-socket:套接字权限

<8>vacuum:当服务器退出的时候自动删除unix socket文件和pid文件

[uwsgi]
project = Python_20160906 chdir = /export/App/DevOPS/%(project)
module = %(project).wsgi master = true
processes = 5 socket = /export/App/DevOPS/%(project)/%(project).sock
chmod-socket = 664
vacuum = true

5.开启uwsgi服务(启动后会创建sock套接字文件)###

uwsgi --ini /export/servers/nginx/conf/uwsgi/Python_20160906.ini &

6.变更nginx配置文件###

map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server
{ listen 80;
server_name devops.xx.com devops.xx.local;
access_log /export/servers/nginx/logs/devops.xx.local/devops.xx.local_access.log main;
error_log /export/servers/nginx/logs/devops.xx.local/devops.xx.local_error.log warn;
error_page 400 401 402 403 404 405 408 410 412 413 414 415 500 501 502 503 506 = http://www.jd.com/error2.aspx;
charset utf-8;
# #########################核心配置就这2行#########################################
location / {
include /export/servers/nginx/conf/uwsgi_params;
uwsgi_pass unix:/export/App/DevOPS/Python_20160906/Python_20160906.sock;
}
#################################################################################
location /static/ {
alias /export/App/DevOPS/Python_20160906/static/;
}
# websocket的匹配
location ~ /index/websocket_demo/ {
include /export/servers/nginx/conf/uwsgi_params;
uwsgi_pass unix:/export/App/DevOPS/Python_20160906/Python_20160906.sock;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location = / {
rewrite ^ /index/ permanent;
}
location = /favicon.ico {
rewrite ^ /static/image/favicon.ico permanent;
}
location /devops/ {
rewrite ^/devops/(.*)$ /$1 last;
}
location /software/ {
alias /export/Data/software/;
allow all;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
}

8.重启nginx###

/etc/init.d/nginx restart

9.uwsgi支持django后端的websocket(dwebsocket模块)###

(1)修改django项目的settings.py,添加一条数据

WEBSOCKET_FACTORY_CLASS = 'dwebsocket.backends.uwsgi.factory.uWsgiWebSocketFactory'

(2)修改uwsgi的配置文件,添加异步选项

async = 30
ugreen = ''
http-timeout = 300

(3)重启uwsgi服务

killall uwsgi

Nginx + uwsgi + django + websocket(dwebsocket)环境部署的更多相关文章

  1. nginx+uwsgi+django+celery+supervisord环境部署

    前言 很久没更博客了,最近新写了一个小项目,后边有时间把一些心得放上来,先把环境的部署方式整理出来. 部署过程 先将环境的python升级为2.7 保证有pip 安装了nginx并配置 vim /Da ...

  2. Nginx+uwsgi+Django 的web应用环境部署-完整记录

    Python作为当前最火爆最热门,也是最主要的Web开发语言之一,在其二十多年的历史中出现了数十种Web框架,比如Django.Tornado.Flask.Twisted.Bottle和Web.py等 ...

  3. 【金】nginx+uwsgi+django+python 应用架构部署

    网上有很多这种配置,但就是没一个靠普的,费了好大的力气才完成架构部署.顺便记录一下. 一.部署前的说明 先安装好 python,django,uwsgi,nginx软件后.后配置运行的软件是分先后的. ...

  4. nginx+uwsgi+django 部署原理

    python开发群里经常有同学问 nginx+uwsgi+django 着了教程部署,但是不知道他们之间怎么样的关系,于是我就google到了一个让我看起来很认同的图,大家看了也比较认同,于是就分享出 ...

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

    Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.ng ...

  6. debian完整部署 Nginx + uWSGI + Django

    手工部署一个Django服务器真心不容易,需要安装很多东西.从头开始搭建服务器,主要是为了梳理一下后续开发中一般为碰到的平台部署.对后续问题的解决有一定帮助. 通常部署有2中方式: 一种是使用现成提供 ...

  7. Nginx+uWSGI+Django环境配置

    通常项目会部署在虚拟环境,虚拟环境的使用可以参考这里,点击前往 当然你也可以直接部署,这里不多说. 一.安装uWSGI 1.通过pip安装 pip install uwsgi 这里只说明了一种安装方式 ...

  8. Nginx+uWSGI+Django部署web服务器

    目录 Nginx+uWSGI+Django部署web服务器 环境说明 前言 搭建项目 Django部署 编辑luffy/luffy/settings.py 编辑luffy/app01/views.py ...

  9. nginx+uwsgi+django部署流程

    当我们在用django开发的web项目时,开发测试过程中用到的是django自带的测试服务器,由于其安全及稳定等性能方面的局限性,django官方并不建议将测试服务器用在实际生产. nginx+uws ...

随机推荐

  1. Git知识总览(四) git分支管理之rebase 以及 cherry-pick相关操作

    上篇博客聊了<Git知识总览(三) 分支的创建.删除.切换.合并以及冲突解决>,本篇博客我们主要来看一下 rebase 变基相关的操作.rebase 操作和 merge 操作最终都可以达到 ...

  2. STL map简单使用

    #include <map> #include <iostream> //pair使用头文件iostream using namespace std; int main() { ...

  3. SQL Server——存储过程

    我想从下面几个方面大概的讲述下存储过程,可能有些知识点是你没有注意的,也可能有些知识点我不知道,欢迎大家指点指点.如有不足,欢迎指教! 存储过程概念 存储过程优点 存储过程的接口 存储过程的解析.编译 ...

  4. android .9图片的制作

    android .9PNG图片制作 在android开发的过程中,我们经常因为没有好的美工图片失真,这样使界面看起来要逊色很多,有的时候可能我们会想在drawable-hdpi,ldpi,mdpi下放 ...

  5. promise使用方法

    代码报错会走向失败时的回调 let p = new Promise((resolve, reject) => { throw new Error("我错了"); //会失败 ...

  6. win10汇编如何debug(小白向)

    先引用别人的方法 http://blog.csdn.net/lcr_happy/article/details/52491107 按他所说的下完对应软件后,安装其中的dosbox,然后将debug.e ...

  7. Cookie简述

    1. Cookie是什么? Cookie(Cookies,浏览器缓存), 是指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密). 2. Cookie的作用: ...

  8. 解决axios传递参数后台无法接收问题

    1.根据下面几个方法改变前台传递参数方式 这样后台就可以直接根据传递的参数获取数据,如下图用户登录时直接传递用户名和密码 2.不改变前台传递样式修改后台接收方式

  9. 从返回的HTTP Header信息中隐藏Apache的版本号及PHP的X-Powered-By信息

    默认情况下,很多apache安装时会显示版本号及操作系统版本,甚至会显示服务器上安装的是什么样的apache模块.这些信息可以为黑客所用,并且黑客还可以从中得知你所配置的服务器上的很多设置都是默认状态 ...

  10. iOS-状态栏字体颜色【白色】【Xcode9.1】

    Xcode9之前 设置状态栏颜色首先在info.plist文件中,加入UIViewControllerBasedStatusBarAppearance = false: <key>UIVi ...