文档章节

Django部署-uwsgi配置

ZHAO_JH
 ZHAO_JH
发布于 05/06 13:22
字数 754
阅读 15
收藏 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

环境说明

  • 系统版本:centos7.1
  • python版本:3.6
  • sqlite版本:3.7
  • django版本:2.1
  • uwsgi版本:2.0.17

本文前提说明:

  • 1、安装uwsgi之前 python3 和 Django2.1 环境已经部署完成
  • 2、已经安装过sqlite或其它数据库,进入python3可用正常引用模块 import sll
  • 3、uwsgi配置文件格式 ini、xml、json 都可,本文以常用的ini配置格式为例

安装配置uwsgi

详细配置参数和变量可参考博文《uwsgi配置详解》或官方配置文档

安装

安装uwsgi[python2或未定义的请用pip命令安装]

pip3 install uwsgi

查看uwsgi版本

uwsgi --version
2.0.17.1

为方便使用,创建uwsgi软连接

ln -s /usr/local/python36/bin/uwsgi /usr/bin/uwsgi

uwsgi服务测试

创建 test.py 测试文件,该uwsgi测试文件在python3中执行不显示

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    # return "Hello World"      # 注:python2使用
    return [b"Hello World"]     # 注:python3使用

运行 uwgi 服务测试

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

【结果】

输入 http://IP:8001 页面显示 Hello World 为服务正常运行

==备注说明:因部署环境版本不同可能输出不了 Hello World 但服务可以正常运行,访问无报错信息即可。此服务测试仅做参考==


配置 uwsgi

具体配置参数可参考官方文档或博文《UWSGI配置详解》

uwsgi.ini配置

==ini方法是较常用的配置方式==

创建 uwsgi.ini 配置文件,一般存放在在django项目下

[uwsgi]
#自定义变量
projectname = MyDjango
base = /www/DjangoProject/MyDjango/
# 启动uwsgi的用户名和用户组
uid = www
gid = www
# 我的项目目录
chdir = %(base)
# 指定项目的application
module = %(projectname).wsgi:application
# 进程个数
workers = 5
# 启用主进程
master = true
# 自动移除unix Socket和pid文件当服务停止的时候
vacuum = true
# 序列化接受的内容,如果可能的话
thunder-lock = true
# 启用线程
enable-threads = true
# 设置自中断时间
harakiri = 30 
# 设置缓冲  
post-buffering = 4096
#pid文件保存路径
pidfile = /tmp/uwsgi.pid
# 设置日志目录
daemonize = /tmp/uwsgi.log
# 指定sock的文件路径,可以用端口或sock文件
#socket = 192.168.88.20:8099
socket = /tmp/uwsgi.sock

变更项目setting配置

setting

DEBUG = False

ALLOWED_HOSTS = ['www.test.com','127.0.0.1','192.168.88.88','localhost']
或
ALLOWED_HOSTS = ['*']

配置nginx

添加nginx虚拟主机配置

==注意:alias路径要和项目setting的STATICFILES_DIRS路径设置保持一致==

server {
    listen 80;    
    server_name www.test.com;
        charset utf-8;
    location / { 
        include uwsgi_params;
        include mime.types; 
        uwsgi_pass unix:/tmp/uwsgi.sock;
    }   
    location /static/ {
        alias /www/DjangoProject/MyDjango/APP/templates/;
    }   
    error_log /www/wwwlogs/www.test.com.error.log;
    access_log  /www/wwwlogs/www.test.com.access.log;
}

运行uwsgi服务

配置完成后启动服务加载配置

uwsgi --ini uwsgi.ini

重载uwsgi配置文件

uwsgi --reload /tmp/uwsgi.pid

停止uwsgi服务

uwsgi --stop /tmp/uwsgi.pid

若使用stop不能完全停止进程可以用kill循环强行结束

for i in `ps axu |grep -vi 'grep'| grep "uwsgi" | awk '{print $2}'`;do kill -9 $i;done

© 著作权归作者所有

ZHAO_JH
粉丝 17
博文 203
码字总数 183245
作品 0
宝山
运维
私信 提问
Nginx+uWSGI 部署 Django 应用

常见的 webapp 部署方式采用 或 的方式部署,今天我这备忘下采用的部署方式。 目前我这博客就是采用 Nginx + uWSGI + Python + Django 构建的,部署虽没有php那样扔到目录那么方便,但是并发和...

鉴客
2011/10/26
28.2K
8
nginx + uwsgi + Django 应用部署

今天来看下基于Django开发的应用如何在Centos6环境部署 系统环境:Centos6.5 x64 软件版本:Django 1.9.5 、uwsgi-2.0.13.1 nginx 安装配置(略)请见:http://tchuairen.blog.51cto.com/384811...

qw87112
2018/06/28
0
0
Django + Uwagi + Nginx部署,亲自实验

Django + Uwsgi + Nginx 的生产环境部署 使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑一些问题了。比如静态...

静水大智
2017/10/28
0
0
Django部署, Nginx + Centos

Django 是一个用 Python 实现的 web 框架, 使用django 部署 web 项目可以说是迅速方便, django 的许多特性都让我爱不释手, 如默认的 sqllite 数据库, 强大后台管理, 自带的 XXS 的表单验证,...

denua_
2017/11/28
26
0
django用uwsgi和nginx部署失败的问题

我自己尝试不是django+uwsgi+nginx,发现部署失败,访问80端口出来的还是nginx默认的页面 版本信息: nginx version: nginx/1.0.15 Python 2.7.11 django:(1, 9, 5, 'final', 0) uwsgi:2.0......

BrankoJuan
2016/05/18
810
1

没有更多内容

加载失败,请刷新页面

加载更多

图的拓扑排序(动图)

概述 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(G),则u在线性序列中出现在v之前。通常,...

大洼X
13分钟前
3
0
CentOS7安装Redis和搭建Redis高可用集群

一、CentOS7下Redis安装 1.查看linux内核版本 此步骤可以省略,一般CentOS7内核版本都应该满足,因为搭建Redis高可用集群是Redis3以上才支持的,而Redis3需要linux内核高于3.10版本,所有才有...

liddblog
16分钟前
2
0
活动泄漏了最初添加的窗口

这是什么错误,为什么会发生? 05-17 18:24:57.069: ERROR/WindowManager(18850): Activity com.mypkg.myP has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@44c4......

技术盛宴
16分钟前
3
0
IT兄弟连 HTML5教程 DIV+CSS的兼容性问题

使用DIV+CSS布局网页其实是很容易的事情,但各种浏览器之间的不兼容性问题,加大了页面布局的难度,给程序员带来很多不便,于是需要花费更多的时间在调试各种浏览器的兼容性上。因为部分CSS...

老码农的一亩三分地
18分钟前
3
0
商家发货

商家发货 商家发货 打开后台-订单-订单列表 1.点击筛选出待发货的订单可进行批量操作。批量发货、批量打印快递单、批量打印发货单。 2.点击发货时,弹出框显示待发货的商品,发货方式可选需要...

Geek-Chic
20分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部